Java字符串常用方法

在Java编程中,字符串(String)是最常用的数据类型之一。Java的String类提供了丰富的API,使得字符串操作变得简单而高效。本文将深入探讨Java字符串的常用方法,并通过代码示例展示这些方法的具体用法。

1. 字符串的创建与初始化

在Java中,字符串可以通过字面量、String类的构造方法以及StringBuilder/StringBuffer类来创建。

// 使用字面量创建字符串
String str1 = "Hello, World!";
 
// 使用String类的构造方法
String str2 = new String("Hello, Java!");
 
// 使用StringBuilder创建字符串
StringBuilder sb = new StringBuilder();
sb.append("Hello, ").append("StringBuilder!");
String str3 = sb.toString();

2. 获取字符串信息

2.1 获取字符串长度
String str = "Hello, Java!";
int length = str.length();
System.out.println("Length: " + length); // 输出: Length: 12
2.2 获取指定位置的字符
char ch = str.charAt(7); // 获取索引为7的字符
System.out.println("Character at index 7: " + ch); // 输出: Character at index 7: J
2.3 获取子字符串
String subStr1 = str.substring(7); // 从索引7开始到字符串末尾
String subStr2 = str.substring(0, 5); // 从索引0开始到索引5(不包括5)
System.out.println("Substring from index 7: " + subStr1); // 输出: Substring from index 7: Java!
System.out.println("Substring from index 0 to 5: " + subStr2); // 输出: Substring from index 0 to 5: Hello

3. 字符串比较

3.1 使用equals方法比较内容
String str1 = "Hello";
String str2 = "hello";
String str3 = "Hello";
 
boolean isEqual1 = str1.equals(str2); // 比较内容是否相同,区分大小写
boolean isEqual2 = str1.equals(str3);
 
System.out.println("str1 equals str2: " + isEqual1); // 输出: str1 equals str2: false
System.out.println("str1 equals str3: " + isEqual2); // 输出: str1 equals str3: true
3.2 使用equalsIgnoreCase方法比较内容(忽略大小写)
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2);
System.out.println("str1 equalsIgnoreCase str2: " + isEqualIgnoreCase); // 输出: str1 equalsIgnoreCase str2: true
3.3 使用compareTo方法比较字典顺序
int compareResult = str1.compareTo(str2); // 按字典顺序比较
System.out.println("Compare result: " + compareResult); // 输出: Compare result: 32(因为'H' - 'h' = 32)

4. 字符串查找

4.1 查找字符或子字符串的索引
int index1 = str.indexOf('o'); // 查找字符'o'第一次出现的位置
int index2 = str.indexOf("Java"); // 查找子字符串"Java"第一次出现的位置
int index3 = str.lastIndexOf('o'); // 查找字符'o'最后一次出现的位置
 
System.out.println("Index of 'o': " + index1); // 输出: Index of 'o': 4
System.out.println("Index of 'Java': " + index2); // 输出: Index of 'Java': 7
System.out.println("Last index of 'o': " + index3); // 输出: Last index of 'o': 8
4.2 判断是否包含某个字符或子字符串
boolean containsHello = str.contains("Hello");
boolean containsJava = str.contains("Java");
 
System.out.println("Contains 'Hello': " + containsHello); // 输出: Contains 'Hello': true
System.out.println("Contains 'Java': " + containsJava); // 输出: Contains 'Java': true

5. 字符串修改

5.1 替换字符或子字符串
String replacedStr = str.replace("Java", "World"); // 替换子字符串
String replacedCharStr = str.replace('o', '0'); // 替换字符
 
System.out.println("Replaced 'Java' with 'World': " + replacedStr); // 输出: Replaced 'Java' with 'World': Hello, World!
System.out.println("Replaced 'o' with '0': " + replacedCharStr); // 输出: Replaced 'o' with '0': Hell0, Java!
5.2 分割字符串
String[] parts = str.split(", "); // 按", "分割字符串
 
for (String part : parts) {
    System.out.println(part);
}
// 输出:
// Hello
// Java!
5.3 去除字符串两端的空白字符
String trimmedStr = "   Hello, Java!   ";
String trimmed = trimmedStr.trim();
 
System.out.println("Trimmed string: '" + trimmed + "'"); // 输出: Trimmed string: 'Hello, Java!'

6. 字符串连接

6.1 使用+操作符连接字符串
String greeting = "Hello" + ", " + "World!";
System.out.println(greeting); // 输出: Hello, World!
6.2 使用String.join方法连接字符串
String joinedStr = String.join(", ", "Hello", "Java", "World");
System.out.println(joinedStr); // 输出: Hello, Java, World

7. 字符串转换为其他类型

7.1 转换为整数
String numStr = "123";
int num = Integer.parseInt(numStr);
 
System.out.println("Parsed integer: " + num); // 输出: Parsed integer: 123
7.2 转换为布尔值
String boolStr = "true";
boolean bool = Boolean.parseBoolean(boolStr);
 
System.out.println("Parsed boolean: " + bool); // 输出: Parsed boolean: true

总结

Java的String类提供了丰富的API,使得字符串操作变得非常灵活和强大。本文介绍了字符串的创建、获取字符串信息、字符串比较、字符串查找、字符串修改、字符串连接以及字符串与其他类型之间的转换等常用方法,并通过代码示例展示了这些方法的具体用法。希望这些内容能帮助你更好地理解和使用Java中的字符串。