2021-12-10 05:19:05
在Java中,可以通过toCharArray()方法将字符串转换为字符数组,以下是详细说明:
核心方法使用String类的内置方法toCharArray(),其语法为:
char[] toCharArray()该方法会返回一个包含字符串中所有字符的新字符数组,数组长度与字符串长度一致。
示例代码
public class Main { public static void main(String[] args) { String str = "Hello"; // 调用toCharArray()方法转换 char[] chars = str.toCharArray(); // 遍历字符数组并输出 for (char c : chars) { System.out.println(c); } }}输出结果
Hello关键注意事项
不可变性说明:转换后的字符数组内容可修改(但需注意字符串本身的不可变性)。例如:
chars[0] = 'h'; // 合法操作,修改数组首元素System.out.println(chars); // 输出 "hello"System.out.println(str); // 输出原字符串 "Hello"(字符串未受影响)原字符串str不会因数组修改而改变,因为toCharArray()返回的是新数组。
空值处理:若字符串为null,直接调用toCharArray()会抛出NullPointerException。安全做法是先判空:
String str = null;char[] chars = (str != null) ? str.toCharArray() : new char[0];替代方案对比若需更灵活的控制(如指定范围转换),可手动遍历字符串:
String str = "World";char[] chars = new char[str.length()];for (int i = 0; i < str.length(); i++) { chars[i] = str.charAt(i);}但这种方式代码量更大,推荐优先使用toCharArray()。
应用场景
性能说明toCharArray()方法的时间复杂度为O(n),其中n为字符串长度。它会创建一个新的字符数组并复制所有字符,因此空间复杂度也为O(n)。在性能敏感场景中,若无需修改字符,可直接使用charAt(int index)方法按需访问字符,避免额外内存开销。