String常用方法

String的方法很多,重载方法也很多,这里只是列出方法名和返回值类型和大概功能,给自己遗忘时查看,具体使用时可以Ctrl+点方法名查看源码(如果使用IEDA的话)。

方法名 功能
char charAt() 返回指定位置的字符
int indexOf() 返回指定子字符串在字符串中第一次出现的位置
int lastIndexOf() 返回指定子字符串在字符串中最后一次出现的位置
String substring() 返回字符串中指定位置的子串
String toLowerCase() 将字符串转换为小写字母
String toUpperCase() 将字符串转换为大写字母
String trim() 删除字符串首尾的空格
String replace() 用指定的字符串替换字符串中的另一个字符串
String replaceAll() 使用正则表达式替换字符串中的另一个字符串
String [] split() 将字符串分割成子字符串数组
Sting format() 使用指定的格式字符串和参数格式化字符串
boolean equals() 比较两个字符串是否相等
int compareTo() 比较两个字符串的大小关系
int compareToIgnoreCase() 比较两个字符串的大小关系(忽略大小写)
int length() 返回字符串的长度
boolean isEmpty() 判断字符串是否为空
int hashCode() 返回此字符串的哈希码
boolean startsWith() 判断字符串是否以指定的子字符串开始
boolean endsWith() 判断字符串是否以指定的子字符串结束
boolean contains() 判断字符串中是否包含指定的子字符串
String concat() 将一个字符串连接到另一个字符串的末尾
boolean matches() 使用正则表达式判断字符串是否匹配指定的模式
String join() 将一个字符串数组使用指定的分隔符连接成一个字符串
String strip() 删除字符串首尾的空格,并返回一个新的字符串
String repeat() 重复指定次数的字符串,并返回一个新的字符串
String anintern() ze返回字符串在字符串池中的引用,无则添加后返回其引用
char[] toCharArray() 将此字符串转换为一个新的字符数组
byte[] getBytes() 将 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中

StringBuffer和StringBuilder

简介

在 Java 中,StringBuilder 和 StringBuffer 都是可变字符串的实现类,可以在字符串中添加、删除、修改、替换字符等操作。它们的主要区别在于线程安全性和性能上。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

image-20230305180747857

StringBuilder 是在 Java 1.5 中引入的,它是线程不安全的,因此在单线程环境下使用,比 StringBuffer 性能更高。StringBuilder 的 API 与 StringBuffer 相同,可以添加、删除、修改和替换字符串中的字符,而且还提供了一些其他实用的方法,如 reverse() 方法可以将字符串反转。另外,由于 StringBuilder 不是线程安全的,因此在多线程环境下需要进行同步处理,以避免并发问题。

StringBuffer 是在 Java 1.0 中引入的,它是线程安全的,因此在多线程环境下使用。StringBuffer 的 API 与 StringBuilder 相同,可以添加、删除、修改和替换字符串中的字符。但是由于它是线程安全的,因此在单线程环境下使用,会比 StringBuilder 稍慢一些。如果在多线程环境下使用,建议使用 StringBuffer。

方法

StringBuffer和StringBuilder中的方法基本都是相同的,只不过是StringBuffer 是线程安全的,而 StringBuilder 则不是。而他们的方法中又部分与String的方法重合,所以下面只列出他们部分的方法。

方法名 功能
append() 将指定的字符串追加到此字符序列
reverse() 将此字符序列用其反转形式取代
delete() 移除此序列的子字符串中的字符
insert() 将字符串插入此序列中
replace() 使用给定的字符替换此序列的子字符串中的字符
capacity() 返回当前容量
ensureCapacity() 确保容量至少等于指定的最小值
setCharAt() 将指定位置的字符替换为指定字符
toString() 返回此序列中数据的字符串表示形式
setLength() 设置字符序列的长度
subSequence() 返回一个新的字符序列,该字符序列是此序列的子序列

参考文档

  1. Java String 类 | 菜鸟教程 (runoob.com)
  2. Java String类_w3cschool
  3. Overview (Java SE 11 & JDK 11 ) (runoob.com)