String 类方法

摘要

  • 拼接与格式化:实现字符串拼接、多元素分隔拼接及格式化输出(支持占位符);
  • 长度与空判断:获取字符串长度、判断空串 / 空白串(适配不同 Java 版本);
  • 截取与替换:截取指定范围字符串、替换字符 / 子串(支持正则匹配);
  • 查找与匹配:查找字符 / 子串位置、判断前缀 / 后缀 / 包含关系、正则匹配;
  • 大小写与去空格:字符串大小写转换、去除两端空格 / 空白字符;
  • 比较与分割:严格 / 忽略大小写比较、按正则分割字符串;
  • 填充与转换:左右填充字符至指定长度、字符串与其他类型(字符数组 / 数值等)互转;
  • 其他常用:常量池关联、正则格式验证(手机号 / 邮箱等)。

一、拼接与格式化

返回值类型方法名核心功能
Stringconcat(String str)拼接单个字符串(参数为 null 抛空指针异常)
StringString.join(CharSequence delimiter, CharSequence... elements)静态方法,分隔符拼接多元素,自动忽略 null(Java 8+)
StringString.format(String format, Object... args)静态方法,格式化输出(支持 % s/% d/%.2f 等占位符)

二、长度与空判断

返回值类型方法名核心功能
intlength()返回字符串长度(中文 / 字母 / 数字均计 1)
booleanisEmpty()判断是否为空串(仅 "" 返回 true)
booleanisBlank()判断是否为空或仅含空白字符(Java 11+)
booleanisNotBlank()判断非空且不含空白字符(Java 11+)

三、截取与替换

返回值类型方法名核心功能
Stringsubstring(int beginIndex)从索引(0 开始)截取到末尾
Stringsubstring(int beginIndex, int endIndex)左闭右开截取(含 beginIndex,不含 endIndex)
Stringreplace(char oldChar, char newChar)替换所有指定字符
Stringreplace(CharSequence target, CharSequence replacement)替换所有指定子串(字面匹配)
StringreplaceAll(String regex, String replacement)替换所有匹配正则的子串
Stringrepeat(int count)重复字符串指定次数(Java 11+)

四、查找与匹配

返回值类型方法名核心功能
intindexOf(String str)查找子串首次出现索引(未找到返回 - 1)
intlastIndexOf(String str)查找子串最后出现索引
booleancontains(CharSequence s)判断是否包含指定子串
booleanstartsWith(String prefix)判断是否以指定前缀开头
booleanendsWith(String suffix)判断是否以指定后缀结尾
booleanmatches(String regex)判断是否匹配正则表达式(格式验证)

五、大小写与去空格

返回值类型方法名核心功能
StringtoUpperCase()转换为大写
StringtoLowerCase()转换为小写
Stringtrim()去除两端 ASCII 空格
Stringstrip()去除两端所有空白字符(Java 11+)

六、比较与分割

返回值类型方法名核心功能
booleanequals(Object anObject)严格比较内容(区分大小写)
booleanequalsIgnoreCase(String anotherString)忽略大小写比较内容
String[]split(String regex)按正则分割字符串(默认舍弃末尾空串)
String[]split(String regex, int limit)按正则分割,limit 控制是否保留空串(≤0 保留)

七、填充与转换

返回值类型方法名核心功能
StringpadStart(int minLength, char padChar)左填充字符至指定长度(Java 11+)
StringpadEnd(int minLength, char padChar)右填充字符至指定长度(Java 11+)
charcharAt(int index)返回指定索引处的字符
char[]toCharArray()转换为字符数组
byte[]getBytes(Charset charset)按指定字符集转换为字节数组
StringString.valueOf(Object obj)静态方法,其他类型转字符串(null 转 "null")

八、其他常用方法

返回值类型方法名核心功能
Stringintern()将字符串放入常量池(复用对象)

九、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 中处理字符串的核心类,具有不可变性(所有修改方法均返回新字符串,原字符串不变)。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐