四,String

bjynjj / 2024-11-05 / 原文

String 类详解

在 Java 编程语言中,String 类是处理字符串的核心类。字符串是由字符序列组成的数据,可以看作是字符数组。String 类是不可变的,这意味着一旦创建,它的值就不能被改变。这种特性使得 String 对象在多线程环境中非常安全,因为不需要担心数据被意外修改。

String 类的特点

  1. 不可变性String 对象一旦创建,就不能被改变。任何修改操作都会生成一个新的 String 对象。
  2. 连续固定大小的内存空间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 类的特点和方法,可以更有效地进行字符串处理和编程。