Java中的 String
类是一个非常重要的类,用于表示不可变的字符序列。它是 Java 标准库中的一部分,属于 java.lang
包。由于字符串在许多编程场景下的频繁使用,了解 String
类的特性、方法与使用方式是非常重要的。
1. 基本概述
- 不可变性:Java 的
String
对象是不可变的。一旦创建了字符串对象,它的内容就不能被改变。如果对字符串进行修改,实际上是创建了一个新的字符串对象。 - 创建方式:可以使用字面值创建字符串(
String str = "Hello";
)或通过new
关键字创建(String str = new String("Hello");
)。
2. 主要构造方法
String()
: 创建一个空字符串对象。String(String original)
: 用指定的字符串初始化新创建的字符串对象。String(char[] value)
: 用字符数组初始化新创建的字符串对象。String(byte[] bytes)
: 用字节数组初始化新创建的字符串对象。
3. 重要的方法
3.1. 字符串基本操作
length()
: 返回字符串的长度。charAt(int index)
: 返回指定索引处的字符。substring(int beginIndex)
: 返回从指定索引开始到末尾的子字符串。substring(int beginIndex, int endIndex)
: 返回从beginIndex
到endIndex
(不包括)之间的子字符串。
3.2. 查找与替换
indexOf(String str)
: 返回指定子字符串在此字符串中第一次出现的索引。lastIndexOf(String str)
: 返回指定子字符串在此字符串中最后一次出现的索引。replace(CharSequence target, CharSequence replacement)
: 替换所有出现的指定字符序列。
3.3. 大小写转换
toLowerCase()
: 将字符串转换为小写字母。toUpperCase()
: 将字符串转换为大写字母。
3.4. 去空白与填充
trim()
: 去掉字符串两端的空白符。padStart(int minLength, char padChar)
: 在字符串开头填充指定字符,直到达到指定长度(需使用其他类)。padEnd(int minLength, char padChar)
: 在字符串结尾填充指定字符,直到达到指定长度(需使用其他类)。
3.5. 字符串比较
equals(Object anObject)
: 比较此字符串与指定对象的内容是否相等。equalsIgnoreCase(String anotherString)
: 比较此字符串与指定字符串(忽略大小写)是否相等。compareTo(String anotherString)
: 按字典顺序比较两个字符串。
3.6. 分割与连接
split(String regex)
: 根据给定的正则表达式将字符串分割成字符串数组。join(CharSequence delimiter, CharSequence... elements)
: 使用指定的分隔符连接字符串数组(Java 8+)。
3.7. 转换为其他类型
toString()
: 返回字符串对象的字符串表示。getBytes()
: 将字符串转换为字节数组(使用平台的默认字符集)。
4. 示例代码
下面是一些示例代码,演示了 String
类的常用方法:
public class StringExample {
public static void main(String[] args) {
String str1 = "Hello, World!";
String str2 = "Java";
// 字符串长度
System.out.println("Length of str1: " + str1.length());
// 字符访问
System.out.println("Character at index 7: " + str1.charAt(7));
// 子字符串
System.out.println("Substring (7, 12): " + str1.substring(7, 12));
// 查找
System.out.println("Index of 'World': " + str1.indexOf("World"));
// 替换
System.out.println("Replaced String: " + str1.replace("World", "Java"));
// 大小写转换
System.out.println("Lowercase: " + str1.toLowerCase());
System.out.println("Uppercase: " + str1.toUpperCase());
// 比较
System.out.println("Strings are equal: " + str1.equals(str1));
// 分割
String[] parts = str1.split(", ");
for (String part : parts) {
System.out.println("Part: " + part);
}
}
}
5. 总结
Java 的 String
类是操作字符序列的基础,提供了丰富的方法来处理字符串。由于字符串在 Java 编程中的广泛使用,掌握 String
类的特性和方法对于高效编程至关重要。注意字符串的不可变性和性能开销,这在处理大量字符串时非常关键。