以下是Java中字符串(String
类)的常用方法分类详解,包含核心方法说明和示例代码:
一、字符串基础信息
方法 | 说明 | 示例 | 输出 |
---|
length() | 返回字符串长度 | "Hello".length() | 5 |
isEmpty() | 判断字符串是否为空(长度是否为0) | "".isEmpty() | true |
charAt(int index) | 返回指定索引处的字符 | "Java".charAt(2) | 'v' |
二、字符串内容判断
方法 | 说明 | 示例 | 输出 |
---|
equals(Object obj) | 比较字符串内容是否相等(区分大小写) | "java".equals("Java") | false |
equalsIgnoreCase(String str) | 比较字符串内容是否相等(不区分大小写) | "java".equalsIgnoreCase("Java") | true |
contains(CharSequence s) | 判断是否包含指定字符序列 | "Hello".contains("ell") | true |
startsWith(String prefix) | 判断是否以指定前缀开头 | "File.txt".startsWith("File") | true |
endsWith(String suffix) | 判断是否以指定后缀结尾 | "Image.jpg".endsWith(".png") | false |
三、字符串操作
方法 | 说明 | 示例 | 输出 |
---|
substring(int beginIndex) | 截取从beginIndex 到末尾的子串 | "Hello".substring(2) | "llo" |
substring(int begin, int end) | 截取[begin, end) 区间的子串 | "Java".substring(1, 3) | "av" |
concat(String str) | 拼接字符串(等效于+ 操作符) | "Hello".concat(" World") | "Hello World" |
replace(char old, char new) | 替换所有old 字符为new 字符 | "apple".replace('p', 'b') | "abble" |
replaceAll(String regex, String replacement) | 使用正则替换所有匹配内容 | "a1b2".replaceAll("\\d", "-") | "a-b-" |
四、字符串转换
方法 | 说明 | 示例 | 输出 |
---|
toLowerCase() | 转换为全小写 | "Java".toLowerCase() | "java" |
toUpperCase() | 转换为全大写 | "Java".toUpperCase() | "JAVA" |
trim() | 去除首尾空白符 | " Hello ".trim() | "Hello" |
split(String regex) | 按正则分割字符串为数组 | "a,b,c".split(",") | ["a", "b", "c"] |
五、字符串查找
方法 | 说明 | 示例 | 输出 |
---|
indexOf(String str) | 返回str 首次出现的索引(未找到返回-1 ) | "Java".indexOf("a") | 1 |
lastIndexOf(String str) | 返回str 最后一次出现的索引 | "banana".lastIndexOf("a") | 5 |
matches(String regex) | 判断是否匹配正则表达式 | "123".matches("\\d+") | true |
六、格式化与转换
方法 | 说明 | 示例 | 输出 |
---|
format(String format, Object... args) | 格式化字符串(静态方法) | String.format("%s:%d", "ID", 100) | "ID:100" |
valueOf(Object obj) | 将对象转换为字符串(静态方法) | String.valueOf(3.14) | "3.14" |
七、正则表达式操作
方法 | 说明 | 示例 |
---|
replaceFirst(String regex, String replacement) | 替换第一个匹配项 | "a1b2".replaceFirst("\\d", "-") → "a-b2" |
split(String regex, int limit) | 按正则分割字符串,限制分割次数 | "a,b,c".split(",", 2) → ["a", "b,c"] |
注意事项
-
字符串不可变性:所有操作均返回新字符串,原字符串不变。
String s = "Hello";
s.toUpperCase();
String s2 = s.toUpperCase();
-
性能优化:频繁拼接字符串时使用StringBuilder
代替+
。
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
String result = sb.toString();
-
正则转义:特殊字符需转义(如.
需写为\\.
)。
"file.txt".split("\\.");
综合示例:解析CSV数据
String csv = "Name,Age,City\nAlice,30,New York\nBob,25,San Francisco";
String[] rows = csv.split("\n");
for (String row : rows) {String[] columns = row.split(",");System.out.println(Arrays.toString(columns));
}
输出:
[Name, Age, City]
[Alice, 30, New York]
[Bob, 25, San Francisco]
掌握这些方法能高效处理字符串操作,建议结合具体场景灵活使用!