1. 基本方法
-
length()
- 描述: 返回字符串的长度(字符数)。
- 示例:
"Hello".length()
返回5
-
charAt(int index)
- 描述: 返回指定索引处的字符。
- 示例:
"Hello".charAt(1)
返回'e'
-
substring(int beginIndex)
- 描述: 返回从指定索引开始到字符串末尾的子字符串。
- 示例:
"Hello".substring(2)
返回"llo"
-
substring(int beginIndex, int endIndex)
- 描述: 返回从
beginIndex
到endIndex
(不包括endIndex
)的子字符串。 - 示例:
"Hello".substring(1, 4)
返回"ell"
- 描述: 返回从
2. 搜索与匹配
-
indexOf(String str)
- 描述: 返回指定子字符串首次出现的索引,如果未找到则返回
-1
。 - 示例:
"Hello".indexOf("ll")
返回2
- 描述: 返回指定子字符串首次出现的索引,如果未找到则返回
-
lastIndexOf(String str)
- 描述: 返回指定子字符串最后一次出现的索引,如果未找到则返回
-1
。 - 示例:
"Hello".lastIndexOf("l")
返回3
- 描述: 返回指定子字符串最后一次出现的索引,如果未找到则返回
-
contains(CharSequence s)
- 描述: 判断字符串是否包含指定的子序列。
- 示例:
"Hello".contains("ell")
返回true
-
startsWith(String prefix)
- 描述: 判断字符串是否以指定前缀开始。
- 示例:
"Hello".startsWith("He")
返回true
-
endsWith(String suffix)
- 描述: 判断字符串是否以指定后缀结束。
- 示例:
"Hello".endsWith("lo")
返回true
3. 转换与格式化
-
toLowerCase()
- 描述: 将字符串中的所有字符转换为小写。
- 示例:
"HELLO".toLowerCase()
返回"hello"
-
toUpperCase()
- 描述: 将字符串中的所有字符转换为大写。
- 示例:
"hello".toUpperCase()
返回"HELLO"
-
trim()
- 描述: 去除字符串首尾的空白字符。
- 示例:
" Hello ".trim()
返回"Hello"
-
replace(char oldChar, char newChar)
- 描述: 替换字符串中所有出现的指定字符。
- 示例:
"Hello".replace('l', 'p')
返回"Heppo"
-
replace(CharSequence target, CharSequence replacement)
- 描述: 替换字符串中所有出现的指定子序列。
- 示例:
"Hello".replace("ll", "pp")
返回"Heppo"
-
replaceAll(String regex, String replacement)
- 描述: 使用正则表达式替换字符串中所有匹配的部分。
- 示例:
"Hello123".replaceAll("\\d", "")
返回"Hello"
-
replaceFirst(String regex, String replacement)
- 描述: 使用正则表达式替换字符串中第一个匹配的部分。
- 示例:
"Hello123".replaceFirst("\\d", "")
返回"Hello23"
4. 分割与连接
-
split(String regex)
- 描述: 根据正则表达式将字符串分割成数组。
- 示例:
"a,b,c".split(",")
返回["a", "b", "c"]
-
split(String regex, int limit)
- 描述: 根据正则表达式将字符串分割成数组,限制分割次数。
- 示例:
"a,b,c".split(",", 2)
返回["a", "b,c"]
5. 比较与判断
-
equals(Object anObject)
- 描述: 比较两个字符串的内容是否相同。
- 示例:
"Hello".equals("hello")
返回false
-
equalsIgnoreCase(String anotherString)
- 描述: 比较两个字符串在忽略大小写的情况下是否相同。
- 示例:
"Hello".equalsIgnoreCase("hello")
返回true
-
compareTo(String anotherString)
- 描述: 按字典顺序比较两个字符串。
- 示例:
"apple".compareTo("banana")
返回一个负数
-
compareToIgnoreCase(String str)
- 描述: 忽略大小写按字典顺序比较两个字符串。
- 示例:
"apple".compareToIgnoreCase("Banana")
返回一个负数
6. 其他有用的方法
-
isEmpty()
- 描述: 判断字符串是否为空(长度为0)。
- 示例:
"".isEmpty()
返回true
-
toCharArray()
- 描述: 将字符串转换为字符数组。
- 示例:
"Hello".toCharArray()
返回['H', 'e', 'l', 'l', 'o']
-
intern()
- 描述: 返回字符串的规范化表示,使用字符串常量池。
- 示例:
"Hello".intern()
-
matches(String regex)
- 描述: 判断字符串是否匹配给定的正则表达式。
- 示例:
"12345".matches("\\d+")
返回true
-
startsWith(String prefix, int toffset)
- 描述: 判断字符串从指定索引开始是否以给定前缀开始。
- 示例:
"Hello".startsWith("ell", 1)
返回true
-
codePointAt(int index)
- 描述: 返回指定索引处的字符的Unicode代码点。
- 示例:
"Hello".codePointAt(1)
返回101
('e’的Unicode)
-
codePointBefore(int index)
- 描述: 返回指定索引前一个字符的Unicode代码点。
- 示例:
"Hello".codePointBefore(1)
返回72
('H’的Unicode)
-
codePointCount(int beginIndex, int endIndex)
- 描述: 计算字符串中从
beginIndex
到endIndex
之间的Unicode代码点数量。 - 示例:
"Hello".codePointCount(0, 5)
返回5
- 描述: 计算字符串中从
7. 格式化方法
format(String format, Object... args)
- 描述: 根据指定的格式和参数,返回一个格式化后的字符串。
- 示例:
String.format("Hello, %s!", "World")
返回"Hello, World!"
8. 转换为其他类型
-
getBytes()
- 描述: 将字符串转换为字节数组,使用平台的默认字符集。
- 示例:
"Hello".getBytes()
-
getBytes(String charsetName)
- 描述: 将字符串转换为指定字符集的字节数组。
- 示例:
"Hello".getBytes("UTF-8")
9. 格式化与解析
valueOf(...)
- 描述: 将各种类型的数据转换为字符串。
- 示例:
String.valueOf(123)
返回"123"
String.valueOf(true)
返回"true"
10. 静态方法
-
join(CharSequence delimiter, CharSequence... elements)
- 描述: 将多个字符串用指定的分隔符连接起来。
- 示例:
String.join(", ", "a", "b", "c")
返回"a, b, c"
-
copyValueOf(char[] data)
- 描述: 创建一个新字符串,以字符数组中的字符为内容。
- 示例:
String.copyValueOf(new char[]{'H', 'i'})
返回"Hi"
-
copyValueOf(char[] data, int offset, int count)
- 描述: 创建一个新字符串,以字符数组中指定范围的字符为内容。
- 示例:
String.copyValueOf(new char[]{'H', 'e', 'l', 'l', 'o'}, 1, 3)
返回"ell"
11. 正则表达式相关
splitAsStream(String regex)
- 描述: 根据正则表达式将字符串分割,并返回一个
Stream<String>
。 - 示例:
"a,b,c".splitAsStream(",").forEach(System.out::println)
- 描述: 根据正则表达式将字符串分割,并返回一个
12. 其他
intern()
- 描述: 如果字符串常量池中已经包含一个等于此
String
对象的字符串,则返回池中的字符串;否则,将此String
对象添加到池中并返回此String
对象的引用。 - 示例:
String s = new String("Hello").intern();
- 描述: 如果字符串常量池中已经包含一个等于此
附加说明
除了String
类,Java还提供了StringBuilder
和StringBuffer
类,这两个类用于在需要频繁修改字符串内容的场景中提供更高效的性能。StringBuilder
是非线程安全的,而StringBuffer
是线程安全的。
-
StringBuilder
常用方法:append(...)
insert(...)
delete(...)
reverse()
toString()
-
StringBuffer
常用方法:- 与
StringBuilder
类似,但线程安全。
- 与