Java 中的 `String` 类是处理字符串的核心类之一,它被广泛用于表示和操作字符串数据。`String` 类是不可变的,这意味着一旦创建了 `String` 对象,它的值就不能被修改。
以下是 `String` 类的一些主要特点、方法及其用法示例:
### 创建字符串对象
```java
// 使用字面值创建字符串对象
String str1 = "Hello";
// 使用构造函数创建字符串对象
String str2 = new String("World");
```
### 基本操作方法
1. **获取字符串长度**
- `int length()`: 返回字符串的长度。
```java
String str = "Hello";
System.out.println(str.length()); // 输出 5
```
2. **获取字符或子串**
- `char charAt(int index)`: 返回指定索引处的字符。
- `String substring(int beginIndex)`: 返回从指定索引开始到字符串末尾的子字符串。
- `String substring(int beginIndex, int endIndex)`: 返回从指定开始索引到结束索引(不包括)的子字符串。
```java
String str = "Hello";
System.out.println(str.charAt(1)); // 输出 'e'
System.out.println(str.substring(2)); // 输出 "llo"
System.out.println(str.substring(1, 4)); // 输出 "ell"
```
3. **字符串连接**
- `String concat(String str)`: 将指定字符串连接到此字符串的末尾。
```java
String str1 = "Hello";
String str2 = "World";
String str3 = str1.concat(str2); // "HelloWorld"
```
4. **字符串比较**
- `boolean equals(Object anObject)`: 将此字符串与指定对象进行比较。
- `boolean equalsIgnoreCase(String anotherString)`: 比较两个字符串,忽略大小写。
```java
String str1 = "hello";
String str2 = "HELLO";
System.out.println(str1.equals(str2)); // false
System.out.println(str1.equalsIgnoreCase(str2)); // true
```
5. **字符串查找**
- `int indexOf(int ch)`: 返回指定字符第一次出现的索引。
- `int indexOf(String str)`: 返回指定字符串第一次出现的索引。
- `int lastIndexOf(int ch)`: 返回指定字符最后一次出现的索引。
- `int lastIndexOf(String str)`: 返回指定字符串最后一次出现的索引。
```java
String str = "Hello World";
System.out.println(str.indexOf('o')); // 输出 4
System.out.println(str.lastIndexOf('o')); // 输出 7
```
6. **字符串替换**
- `String replace(char oldChar, char newChar)`: 将字符串中的所有旧字符替换为新字符。
- `String replace(CharSequence target, CharSequence replacement)`: 将字符串中所有匹配的目标序列替换为指定的替换序列。
```java
String str = "Hello World";
String newStr = str.replace('o', '0'); // "Hell0 W0rld"
```
7. **字符串分割**
- `String[] split(String regex)`: 根据给定的正则表达式拆分字符串。
```java
String str = "apple,banana,cherry";
String[] fruits = str.split(",");
// fruits = ["apple", "banana", "cherry"]
```
8. **字符串转换**
- `char[] toCharArray()`: 将字符串转换为字符数组。
- `String toLowerCase()`: 将字符串转换为小写形式。
- `String toUpperCase()`: 将字符串转换为大写形式。
```java
String str = "Hello";
char[] chars = str.toCharArray(); // ['H', 'e', 'l', 'l', 'o']
System.out.println(str.toLowerCase()); // "hello"
System.out.println(str.toUpperCase()); // "HELLO"
```
### 总结
`String` 类提供了丰富的方法来操作字符串,包括创建、连接、比较、搜索、替换等功能。由于 `String` 对象的不可变性,每个方法都返回一个新的 `String` 对象,而不会修改原始对象。这种设计使得字符串操作更为安全和可控。