Java的字符串操作方法
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 类的对象能够被多次的修改,并且不产生新的未使用对象。
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() | 返回一个新的字符序列,该字符序列是此序列的子序列 |