在 Java 中 String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版。
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
示例:
String str = "administrator"; System.out.println(str.indexOf("i")); System.out.println(str.indexOf("i", 4));
输出结果如下:
3 5
char charAt(int index) 返回指定索引处的 char 值
示例:
String str = "administrator"; System.out.println(str.charAt(5));
输出结果如下:
i
String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement) 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
示例:
String str = "administrator admin"; System.out.println(str.replace("i", "#")); System.out.println(str.replace("admin", "ADMIN")); System.out.println(str.replaceAll("admin", "ADMIN")); System.out.println(str.replaceFirst("admin", "ADMIN"));
输出结果如下:
adm#n#strator adm#n ADMINistrator ADMIN ADMINistrator ADMIN ADMINistrator admin
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
示例:
String str = " administrator "; System.out.println("|" + str + "|"); System.out.println("|" + str.trim() + "|");
输出结果如下:
| administrator | |administrator|
String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit) 根据匹配给定的正则表达式来拆分此字符串。
示例:
String str = "administrator"; String[] str1 = str.split("i"); System.out.println(Arrays.toString(str1)); String[] str2 = str.split("i", 2); System.out.println(Arrays.toString(str2));
输出结果如下:
[adm, n, strator] [adm, nistrator]
byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
byte[] getBytes(Charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。
byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
示例:
String str = "administrator"; byte[] bytes = str.getBytes(); System.out.println(Arrays.toString(bytes)); bytes = str.getBytes("UTF-8"); System.out.println(Arrays.toString(bytes));
输出结果如下:
[97, 100, 109, 105, 110, 105, 115, 116, 114, 97, 116, 111, 114] [97, 100, 109, 105, 110, 105, 115, 116, 114, 97, 116, 111, 114]
int length() 返回此字符串的长度。
示例:
String str = "administrator"; System.out.println(str.length());
输出结果如下:
13
String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
String toLowerCase(Locale locale) 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toUpperCase(Locale locale) 使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
示例:
String str = "administrator"; System.out.println(str.toUpperCase()); str = "ADMINISTRATOR"; System.out.println(str.toLowerCase());
输出结果如下:
ADMINISTRATOR administrator
String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
示例:
String str = "administrator"; System.out.println(str.substring(5)); System.out.println(str.substring(5, 10));
输出结果如下:
istrator istra
boolean equals(Object anObject) 将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
示例:
String str = "admin"; System.out.println(str.equals("admin")); System.out.println(str.equalsIgnoreCase("Admin"));
输出结果如下:
true true
equals 源码如下:
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String aString = (String)anObject; if (coder() == aString.coder()) { return isLatin1() ? StringLatin1.equals(value, aString.value) : StringUTF16.equals(value, aString.value); } } return false; }