四,String
String 类详解
在 Java 编程语言中,String
类是处理字符串的核心类。字符串是由字符序列组成的数据,可以看作是字符数组。String
类是不可变的,这意味着一旦创建,它的值就不能被改变。这种特性使得 String
对象在多线程环境中非常安全,因为不需要担心数据被意外修改。
String 类的特点
- 不可变性:
String
对象一旦创建,就不能被改变。任何修改操作都会生成一个新的String
对象。 - 连续固定大小的内存空间:
String
对象在内存中占用连续的空间,大小在创建时就固定了。
String 类的构造方法
String
类提供了多种构造方法,允许从不同的数据类型创建字符串:
// 创建一个空字符串
String emptyString = new String();
// 从字节数组创建字符串
byte[] bytes = {72, 101, 108, 108, 111};
String stringFromBytes = new String(bytes);
// 从字节数组的指定部分创建字符串
byte[] bytesPartial = {72, 101, 108};
String stringFromBytesPartial = new String(bytesPartial, 0, 3);
// 从字符数组创建字符串
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String stringFromChars = new String(chars);
// 从字符数组的指定部分创建字符串
char[] charsPartial = {'H', 'e', 'l', 'l', 'o'};
String stringFromCharsPartial = new String(charsPartial, 1, 3);
// 从另一个字符串复制创建新字符串
String original = "Hello";
String copy = new String(original);
String 类的方法
String
类提供了丰富的方法来操作字符串,包括判断、获取、转换和其他功能。
判断功能
String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";
// 判断两个字符串是否相等
boolean isEqual = str1.equals(str2); // true
// 判断两个字符串忽略大小写是否相等
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str3); // true
// 判断字符串是否包含某个子字符串
boolean contains = str1.contains("ell"); // true
// 判断字符串是否以某个子字符串开始
boolean startsWith = str1.startsWith("hel"); // true
// 判断字符串是否以某个子字符串结束
boolean endsWith = str1.endsWith("llo"); // true
// 判断字符串是否为空
boolean isEmpty = str1.isEmpty(); // false
获取功能
// 获取字符串的长度
int length = str1.length(); // 5
// 获取指定索引处的字符
char charAt = str1.charAt(1); // 'e'
// 获取字符在字符串中第一次出现的位置
int indexOfChar = str1.indexOf('e'); // 1
// 获取字符串在字符串中第一次出现的位置
int indexOfString = str1.indexOf("ell"); // 1
// 从指定索引开始,获取字符在字符串中第一次出现的位置
int indexOfCharFromIndex = str1.indexOf('e', 2); // 1
// 从指定索引开始,获取字符串在字符串中第一次出现的位置
int indexOfStringFromIndex = str1.indexOf("ell", 2); // -1
// 获取从指定位置开始到字符串末尾的子字符串
String substringFromStart = str1.substring(1); // "ello"
// 获取从开始位置到结束位置的子字符串
String substringToEnd = str1.substring(1, 3); // "el"
转换功能
// 将字符串转换为字节数组
byte[] bytes = str1.getBytes();
// 将字符串转换为字符数组
char[] chars = str1.toCharArray();
// 将字符数组转换为字符串
String stringFromCharArray = String.valueOf(chars);
// 将整数转换为字符串
String stringFromInt = String.valueOf(123);
// 将字符串转换为小写
String lowerCase = str1.toLowerCase(); // "hello"
// 将字符串转换为大写
String upperCase = str1.toUpperCase(); // "HELLO"
// 将字符串连接到另一个字符串的结尾
String concat = str1.concat(" World"); // "hello World"
替换功能
// 将字符串中的字符替换为新字符
String replaceChar = str1.replace('e', 'a'); // "hallo"
// 将字符串中的子字符串替换为新子字符串
String replaceString = str1.replace("ell", "ip"); // "halip"
其他功能
// 去除字符串两端的空格
String trim = str1.trim(); // "hello"
// 按字典顺序比较两个字符串
int compare = str1.compareTo("hello"); // 0
int compareToIgnoreCase = str1.compareToIgnoreCase("HELLO"); // 0
总结
String
类是 Java 中处理字符串的基础,其不可变性和丰富的方法使得字符串操作既安全又方便。通过理解 String
类的特点和方法,可以更有效地进行字符串处理和编程。