1.基础概念
String
类是Java中用于表示字符串的类,它属于java.lang
包。字符串是不可变的,一旦创建就不能被修改。这意味着每次对字符串进行操作时,都会创建一个新的字符串对象。
String myString = "Hello, World!";
2.常见String操作方法
String
类提供了许多用于操作字符串的方法,例如:
length()
: 返回字符串的长度。charAt(index)
: 返回指定索引处的字符。substring(beginIndex, endIndex)
: 返回一个新字符串,包含从beginIndex
到endIndex-1
的字符。concat(str)
: 将指定字符串连接到此字符串的末尾。indexOf(str)
: 返回指定子字符串在此字符串中第一次出现的索引。
String str = "Java Programming";
int length = str.length(); // 17
char firstChar = str.charAt(0); // 'J'
String subStr = str.substring(0, 4); // "Java"
String newStr = str.concat(" is fun!"); // "Java Programming is fun!"
int index = str.indexOf("Programming"); // 5
3.字符串的不可变性
由于字符串是不可变的,任何修改字符串的操作都会创建一个新的字符串对象。这种设计有助于提高字符串的安全性和线程安全性。
String original = "Hello";
String modified = original.concat(", World!"); // 创建了一个新的字符串对象
System.out.println(original); // "Hello"
System.out.println(modified); // "Hello, World!"
虽然不可变性可能会导致一些性能开销,但它也带来了一些优势,如线程安全性和安全性。不可变字符串可以安全地共享,而不必担心被修改。
4.字符串的比较
String
类提供了多种比较字符串的方法,包括equals()
、equalsIgnoreCase()
和compareTo()
等。需要注意的是,应该避免使用==
运算符进行字符串比较,因为它比较的是引用而不是内容。
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // false
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // true
int compareToResult = str1.compareTo(str2); // 32,根据字母顺序比较
5.字符串的拼接
在Java中,有多种方式可以进行字符串的拼接,例如使用“+”运算符、concat()
方法,或者StringBuilder
类。对于频繁的字符串拼接操作,推荐使用StringBuilder
以提高性能。
String firstName = "John";
String lastName = "Doe";
// 使用 + 运算符
String fullName1 = firstName + " " + lastName;
// 使用 concat 方法
String fullName2 = firstName.concat(" ").concat(lastName);
// 使用 StringBuilder 类
StringBuilder fullNameBuilder = new StringBuilder();
fullNameBuilder.append(firstName).append(" ").append(lastName);
String fullName3 = fullNameBuilder.toString();