在Java中,字符串是开发过程中使用频率极高的数据类型,Java提供了String类以及配套的方法来完成各类文本操作,同时还有StringBuilder、StringBuffer类来处理可变字符串场景,掌握这些方法能高效完成文本截取、拼接、替换、校验等常见需求。

String类的常用文本操作方法
String类是Java中不可变的字符串类型,一旦创建内容就无法修改,其提供的各类方法可以直接对文本进行处理并返回新的字符串结果。
文本截取与分割
截取文本可以使用substring方法,分割文本可以使用split方法,以下是具体使用示例:
public class StringCutDemo {
public static void main(String[] args) {
String text = "Java字符串操作示例";
// 截取从索引2到索引5的内容(左闭右开)
String sub1 = text.substring(2, 5);
System.out.println("截取结果:" + sub1); // 输出:字符串
// 按指定分隔符分割文本
String info = "张三,20,男,Java开发";
String[] parts = info.split(",");
for (String part : parts) {
System.out.println("分割后内容:" + part);
}
}
}
文本替换与查找
替换文本可以使用replace或replaceAll方法,查找文本可以使用indexOf、contains方法:
public class StringReplaceDemo {
public static void main(String[] args) {
String content = "今天学习Java,明天还要学习Java";
// 替换所有指定文本
String newContent = content.replace("Java", "Python");
System.out.println("替换后内容:" + newContent);
// 查找文本是否存在
boolean hasJava = content.contains("Java");
System.out.println("是否包含Java:" + hasJava);
// 查找文本首次出现的位置
int firstIndex = content.indexOf("Java");
System.out.println("Java首次出现位置:" + firstIndex);
}
}
文本格式校验与转换
常用校验方法包括判断开头结尾、判断空字符串,转换方法包括大小写转换、去空格等:
public class StringCheckDemo {
public static void main(String[] args) {
String email = "test@ipipp.com";
// 判断是否为邮箱格式开头结尾
boolean isEmail = email.startsWith("test") && email.endsWith("ipipp.com");
System.out.println("是否为目标邮箱:" + isEmail);
String mixedCase = "AbCdEfG";
// 转换为大写
String upper = mixedCase.toUpperCase();
// 转换为小写
String lower = mixedCase.toLowerCase();
System.out.println("大写结果:" + upper + ",小写结果:" + lower);
String withSpace = " hello world ";
// 去除首尾空格
String trimResult = withSpace.trim();
System.out.println("去空格后内容:" + trimResult);
}
}
可变字符串StringBuilder的使用
由于String是不可变的,频繁拼接字符串会产生大量临时对象,此时可以使用StringBuilder类,它是可变的字符串序列,适合大量文本拼接的场景。
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
// 追加文本
sb.append("Java");
sb.append("字符串");
sb.append("操作");
// 插入文本
sb.insert(4, "高效");
// 反转文本
sb.reverse();
System.out.println("最终内容:" + sb.toString());
// 大量拼接场景对比
long start = System.currentTimeMillis();
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < 10000; i++) {
sb2.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuilder拼接耗时:" + (end - start) + "毫秒");
}
}
常见文本操作综合案例
以下是一个处理用户手机号脱敏的综合案例,结合了多个字符串方法:
public class PhoneMaskDemo {
public static void main(String[] args) {
String phone = "13812345678";
if (phone != null && phone.length() == 11) {
// 截取前3位和后4位
String prefix = phone.substring(0, 3);
String suffix = phone.substring(7);
// 拼接脱敏结果
String maskedPhone = prefix + "****" + suffix;
System.out.println("脱敏后手机号:" + maskedPhone);
} else {
System.out.println("手机号格式不正确");
}
}
}
操作注意事项
- String是不可变类型,每次修改都会生成新对象,频繁修改文本建议使用StringBuilder
split方法的参数是正则表达式,如果需要按普通点号分割,需要写为split("\.")substring方法的索引从0开始,结束索引是开区间,不包含该位置的字符- 判断字符串是否为空要同时考虑null和空字符串两种情况,避免空指针异常
Java字符串字符串方法文本操作substringStringBuilder修改时间:2026-06-10 08:33:25