String类是Java中处理文本的核心工具,具有不可变性。1. 提供equals、equalsIgnoreCase进行字符串比较,startsWith、endsWith判断前后缀,contains检查子串,isEmpty和isBlank判断空或空白内容。2. charAt获取指定位置字符,indexOf和lastIndexOf查找子串位置,substring实现截取操作。3. replace和replaceAll支持字符或正则替换,trim、strip系列方法去除空白,format用于格式化输出。4. split按正则分割字符串,join连接多个字符串,concat实现拼接。由于String不可变,频繁修改应使用StringBuilder或StringBuffer以提升性能。

Java中的String类是处理文本数据的核心工具,它属于java.lang包,无需导入即可直接使用。String对象代表不可变的字符序列,也就是说一旦创建,其内容不能被修改。这种设计保证了字符串的安全性和高效性,尤其在多线程和常量池管理中表现突出。下面介绍String类常用的文本处理方法及其使用场景。
1. 字符串比较与判断
在实际开发中,经常需要判断两个字符串是否相等或检查其内容特征。
- equals(Object obj):比较字符串内容是否相同,区分大小写。例如:"Hello".equals("hello") 返回 false。
- equalsIgnoreCase(String anotherString):忽略大小写进行内容比较,适合不区分大小写的验证场景。
- startsWith(String prefix) 和 endsWith(String suffix):判断字符串是否以指定前缀或后缀开头/结尾,常用于文件类型或协议判断。
- contains(CharSequence s):检查字符串是否包含某个子序列,返回boolean值,适合关键字搜索。
- isEmpty():判断字符串长度是否为0;isBlank()(Java 11+)还可判断是否全为空白字符。
2. 字符串查找与截取
从一段文本中提取所需信息时,查找和截取操作非常关键。
- charAt(int index):获取指定位置的字符,索引从0开始。越界会抛出StringIndexOutOfBoundsException。
- indexOf(String str):返回子字符串首次出现的索引,未找到返回-1。可配合循环实现多次查找。
- lastIndexOf(String str):返回最后一次出现的位置,适合反向查找。
- substring(int beginIndex) 或 substring(int beginIndex, int endIndex):截取子字符串。注意endIndex不包含在内。
3. 字符串替换与格式化
对原始字符串进行内容更新或美化输出时,这些方法非常实用。
立即学习“Java免费学习笔记(深入)”;
- replace(char oldChar, char newChar) 或 replaceAll(String regex, String replacement):前者替换字符,后者支持正则表达式批量替换。
- trim():去除首尾空白字符(空格、制表符等),但不会影响中间部分。
- strip()、stripLeading()、stripTrailing()(Java 11+):更精准的空白处理,支持Unicode空白字符。
- format(String format, Object... args):按格式生成字符串,类似C语言的printf,如String.format("姓名:%s,年龄:%d", name, age)。
4. 字符串分割与连接
处理结构化文本(如CSV、配置项)时,拆分和合并字符串是常见需求。
- split(String regex):根据正则表达式将字符串拆成字符串数组。例如"a,b,c".split(",") 得到 { "a", "b", "c" }。
- join(CharSequence delimiter, CharSequence... elements):将多个字符串用指定分隔符连接。如String.join("-", "2024", "04", "05") 返回 "2024-04-05"。
- concat(String str):拼接一个字符串到原串末尾,等价于+操作,但更明确。
基本上就这些常用方法。掌握它们能有效提升Java中处理文本的效率。由于String不可变,每次操作都会生成新对象,频繁修改建议使用StringBuilder或StringBuffer。合理选择方法,结合业务逻辑,才能写出清晰高效的代码。










