Java字符串
- 字符串的基本概念:在Java中,字符串是字符序列,用双引号表示,例如
"Java 编程"
。字符串是String
类的对象,不是原始类型。 - 创建和操作字符串:Java字符串可以通过字面量直接创建或使用
new
关键字。提供了多种操作方法,如length()
获取长度,concat()
连接字符串,以及equals()
比较字符串。 - 字符串的特性:Java中的字符串是不可变的,修改字符串实际上是创建了新的字符串对象。JVM维护了字符串池以促进字符串重用。字符串还支持转义字符以包含特殊字符。
在 Java 中,字符串是字符的序列。例如,"hello"
是包含字符序列 'h'
、'e'
、'l'
、'l'
和 'o'
的字符串。
我们使用双引号来表示 Java 中的字符串。例如,
// 创建一个字符串
String type = "Java 编程";
这里,我们创建了一个名为 type
的字符串变量。该变量被初始化为字符串 Java 编程
。
示例:在 Java 中创建字符串
class Main {
public static void main(String[] args) {
// 创建字符串
String first = "Java";
String second = "Python";
String third = "JavaScript";
// 打印字符串
System.out.println(first); // 打印 Java
System.out.println(second); // 打印 Python
System.out.println(third); // 打印 JavaScript
}
}
在上面的示例中,我们创建了三个名为 first
、second
和 third
的字符串。在这里,我们像原始类型一样直接创建字符串。
然而,还有另一种创建 Java 字符串的方式(使用 new
关键字)。我们将在本教程后面学习这个。
注意:Java 中的字符串不是原始类型(如 int
、char
等)。相反,所有字符串都是预定义类 String
的对象。
并且,所有字符串变量都是 String
类的实例。
Java 字符串操作
Java 字符串提供了各种方法来执行不同的字符串操作。我们将了解一些常用 的字符串操作。
1. 获取字符串长度
要找出字符串的长度,我们使用字符串的 length()
方法。例如,
class Main {
public static void main(String[] args) {
// 创建一个字符串
String greet = "Hello! World";
System.out.println("字符串: " + greet);
// 获取 greet 的长度
int length = greet.length();
System.out.println("长度: " + length);
}
}
输出
字符串: Hello! World
长度: 12
在上述示例中,length()
方法计算字符串中的字符总数并返回。要了解更多,请访问 Java String length()。
2. 连接两个 Java 字符串
我们可以使用 concat()
方法在 Java 中连接两个字符串。例如,
class Main {
public static void main(String[] args) {
// create first string
String first = "Java ";
System.out.println("First String: " + first);
// create second
String second = "Programming";
System.out.println("Second String: " + second);
// join two strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
}
}
Output
First String: Java
Second String: Programming
Joined String: Java Programming
在上述示例中,我们创建了两个名为 first
和 second
的字符串。请注意以下语句:
String joinedString = first.concat(second);
这里,concat()
方法将 second
字符串连接到 first
字符串,并将其赋值给 joinedString
变量。
我们也可以使用 Java 中的 +
运算符来连接两个字符串。要了解更多,请访问 Java String concat()。
3. 比较两个字符串
在 Java 中,我们可以使用 equals()
方法比较两个字符串。例如,
class Main {
public static void main(String[] args) {
// 创建 3 个字符串
String first = "java programming";
String second = "java programming";
String third = "python programming";
// 比较第一个和第二个字符串
boolean result1 = first.equals(second);
System.out.println("Strings first and second are equal: " + result1);
// 比较第一个和第三个字符串
boolean result2 = first.equals(third);
System.out.println("Strings first and third are equal: " + result2);
}
}
输出
Strings first and second are equal: true
Strings first and third are equal: false
在上述示例中,我们创建了名为 first
、second
和 third
的 3 个字符串。这里,我们使用 equal()
方法来检查一个字符串是否等于另一个字符串。
equals()
方法在比较字符串时检查它们的内容。要了解更多,请访问 Java String equals()。
注意:我们也可以使用 Java 中的 ==
运算符来比较两个字符串。然而,这种方法与 equals()
方法不同。要了解更多,请访问 Java String == vs equals()。
Java 字符串中的转义字符
转义字符用于在字符串内部转义某些字符。
假设我们需要在字符串中包含双引号。
// 包含双引号
String example = "This is the "String" class";
由于字符串由双引号表示,编译器将把 "This is the "
视为字符串。因此,上述代码将导致错误。
为了解决这个问题,我们在 Java 中使用转义字符 \
。例如,
// 使用转义字符
String example = "This is the \"String\" class.";
现在转义字符告诉编译器转义双引号并阅读整个文本。
Java 字符串是不可变的
在 Java 中,字符串是不可变的。这意味着,一旦我们创建了一个字符串,我们就无法更改这个字符串。
为了更深入地理解,考虑一个例子:
// 创建一个字符串
String example = "Hello! ";
这里,我们创建了一个名为 example
的字符串变量。该变量包含字符串 "Hello! "
。
现在假设我们想要更改这个字符串。
// 添加另一个字符串 "World"
// 到先前的字符串 example
example = example.concat(" World");
这里,我们使用 concat()
方法将另一个字符串 World
添加到之前的字符串。
看起来我们能够更改先前字符串的值。然而,这不是真的
。
让我们看看这里发生了什么,
- JVM 接收第一个字符串
"Hello! "
- 通过将
"World"
添加到第一个字符串来创建一个新字符串 - 将新字符串
"Hello! World"
分配给example
变量 - 第一个字符串
"Hello! "
保持不变