String 类方法
摘要
- 拼接与格式化:实现字符串拼接、多元素分隔拼接及格式化输出(支持占位符);
- 长度与空判断:获取字符串长度、判断空串 / 空白串(适配不同 Java 版本);
- 截取与替换:截取指定范围字符串、替换字符 / 子串(支持正则匹配);
- 查找与匹配:查找字符 / 子串位置、判断前缀 / 后缀 / 包含关系、正则匹配;
- 大小写与去空格:字符串大小写转换、去除两端空格 / 空白字符;
- 比较与分割:严格 / 忽略大小写比较、按正则分割字符串;
- 填充与转换:左右填充字符至指定长度、字符串与其他类型(字符数组 / 数值等)互转;
- 其他常用:常量池关联、正则格式验证(手机号 / 邮箱等)。
一、拼接与格式化
| 返回值类型 | 方法名 | 核心功能 |
|---|
| String | concat(String str) | 拼接单个字符串(参数为 null 抛空指针异常) |
| String | String.join(CharSequence delimiter, CharSequence... elements) | 静态方法,分隔符拼接多元素,自动忽略 null(Java 8+) |
| String | String.format(String format, Object... args) | 静态方法,格式化输出(支持 % s/% d/%.2f 等占位符) |
二、长度与空判断
| 返回值类型 | 方法名 | 核心功能 |
|---|
| int | length() | 返回字符串长度(中文 / 字母 / 数字均计 1) |
| boolean | isEmpty() | 判断是否为空串(仅 "" 返回 true) |
| boolean | isBlank() | 判断是否为空或仅含空白字符(Java 11+) |
| boolean | isNotBlank() | 判断非空且不含空白字符(Java 11+) |
三、截取与替换
| 返回值类型 | 方法名 | 核心功能 |
|---|
| String | substring(int beginIndex) | 从索引(0 开始)截取到末尾 |
| String | substring(int beginIndex, int endIndex) | 左闭右开截取(含 beginIndex,不含 endIndex) |
| String | replace(char oldChar, char newChar) | 替换所有指定字符 |
| String | replace(CharSequence target, CharSequence replacement) | 替换所有指定子串(字面匹配) |
| String | replaceAll(String regex, String replacement) | 替换所有匹配正则的子串 |
| String | repeat(int count) | 重复字符串指定次数(Java 11+) |
四、查找与匹配
| 返回值类型 | 方法名 | 核心功能 |
|---|
| int | indexOf(String str) | 查找子串首次出现索引(未找到返回 - 1) |
| int | lastIndexOf(String str) | 查找子串最后出现索引 |
| boolean | contains(CharSequence s) | 判断是否包含指定子串 |
| boolean | startsWith(String prefix) | 判断是否以指定前缀开头 |
| boolean | endsWith(String suffix) | 判断是否以指定后缀结尾 |
| boolean | matches(String regex) | 判断是否匹配正则表达式(格式验证) |
五、大小写与去空格
| 返回值类型 | 方法名 | 核心功能 |
|---|
| String | toUpperCase() | 转换为大写 |
| String | toLowerCase() | 转换为小写 |
| String | trim() | 去除两端 ASCII 空格 |
| String | strip() | 去除两端所有空白字符(Java 11+) |
六、比较与分割
| 返回值类型 | 方法名 | 核心功能 |
|---|
| boolean | equals(Object anObject) | 严格比较内容(区分大小写) |
| boolean | equalsIgnoreCase(String anotherString) | 忽略大小写比较内容 |
| String[] | split(String regex) | 按正则分割字符串(默认舍弃末尾空串) |
| String[] | split(String regex, int limit) | 按正则分割,limit 控制是否保留空串(≤0 保留) |
七、填充与转换
| 返回值类型 | 方法名 | 核心功能 |
|---|
| String | padStart(int minLength, char padChar) | 左填充字符至指定长度(Java 11+) |
| String | padEnd(int minLength, char padChar) | 右填充字符至指定长度(Java 11+) |
| char | charAt(int index) | 返回指定索引处的字符 |
| char[] | toCharArray() | 转换为字符数组 |
| byte[] | getBytes(Charset charset) | 按指定字符集转换为字节数组 |
| String | String.valueOf(Object obj) | 静态方法,其他类型转字符串(null 转 "null") |
八、其他常用方法
| 返回值类型 | 方法名 | 核心功能 |
|---|
| String | intern() | 将字符串放入常量池(复用对象) |
九、String类方法 代码示例
字符串处理方法
// 一、拼接与格式化
System.out.println("Hello".concat(" World")); // 拼接两个字符串,输出:Hello World
System.out.println(String.join("-", "a", "b", "c")); // 用分隔符拼接多元素,输出:a-b-c
System.out.println(String.format("年龄:%d,成绩:%.2f", 20, 95.567)); // 格式化输出内容,输出:年龄:20,成绩:95.57
// 二、长度与空判断
System.out.println("Java".length()); // 获取字符串长度,输出:4
System.out.println("".isEmpty()); // 判断是否为空串,输出:true
System.out.println(" ".isBlank()); // 判断是否为空白串,输出:true(Java 11+)
// 三、截取与替换
String strSub = "JavaString";
System.out.println(strSub.substring(4)); // 从指定索引截取字符串至末尾,输出:String
System.out.println(strSub.substring(0, 4)); // 按索引范围截取字符串,输出:Java
String strReplace = "abacabc";
System.out.println(strReplace.replace('a', 'x')); // 替换字符串中所有指定字符,输出:xbxcxbc
System.out.println(strReplace.replace("ab", "xy")); // 替换字符串中所有指定子串,输出:xyccxyc
System.out.println("ab".repeat(3)); // 重复字符串指定次数,输出:ababab(Java 11+)
// 四、查找与匹配
String strFind = "JavaStringJava";
System.out.println(strFind.indexOf("Java")); // 查找子串首次出现的索引,输出:0
System.out.println(strFind.lastIndexOf("Java")); // 查找子串最后出现的索引,输出:10
System.out.println(strFind.contains("String")); // 判断字符串是否包含指定子串,输出:true
System.out.println("13812345678".matches("^1[3-9]\\d{9}$")); // 验证字符串是否匹配正则规则,输出:true
// 五、大小写与去空格
String strCase = "Java String";
System.out.println(strCase.toUpperCase()); // 将字符串转换为大写,输出:JAVA STRING
System.out.println(strCase.toLowerCase()); // 将字符串转换为小写,输出:java string
String strTrim = " Java ";
System.out.println("[" + strTrim.trim() + "]"); // 去除字符串两端ASCII空格,输出:[Java]
System.out.println("[" + "\tJava\n".strip() + "]"); // 去除字符串两端所有空白字符,输出:[Java](Java 11+)
// 六、比较与分割
String strCmp1 = "Java";
String strCmp2 = "java";
System.out.println(strCmp1.equals(strCmp2)); // 严格比较两个字符串内容,输出:false
System.out.println(strCmp1.equalsIgnoreCase(strCmp2)); // 忽略大小写比较字符串内容,输出:true
String[] arr = "a,b,c,,d".split(",", -1); // 按正则分割字符串并保留空串
for (String s : arr) System.out.print("[" + s + "] "); // 遍历输出分割结果,输出:[a] [b] [c] [] [d]
System.out.println();
// 七、填充与转换
String strPad = "8";
System.out.println(strPad.padStart(3, '0')); // 左填充字符至指定长度,输出:008(Java 11+)
System.out.println(strPad.padEnd(3, '0')); // 右填充字符至指定长度,输出:800(Java 11+)
String strConv = "Java123";
System.out.println(strConv.charAt(2)); // 获取指定索引处的字符,输出:v
System.out.println(strConv.toCharArray()[4]); // 将字符串转字符数组并取值,输出:1
System.out.println(String.valueOf(123)); // 将其他类型转换为字符串,输出:123
// 八、其他常用
String strIntern1 = new String("Java");
String strIntern2 = "Java";
System.out.println(strIntern1.intern() == strIntern2); // 将字符串入常量池并比较引用,输出:true
总结
Java String类提供丰富的字符串处理方法,包括:拼接与格式化(concat/join/format)、长度与空判断(length/isBlank)、截取与替换(substring/replace)、查找与匹配(indexOf/matches)、大小写转换(toUpperCase/toLowerCase)、去空格(trim/strip)、比较与分割(equals/split)、填充与转换(padStart/valueOf)等。所有修改方法都返回新字符串对象,保持不可变性。
String 类是 Java 中处理字符串的核心类,具有不可变性(所有修改方法均返回新字符串,原字符串不变)。
所有评论(0)