Java中将String转为char数组最直接的方式是调用toCharArray()方法,该方法返回新创建的、与原字符串内容一致且可读可写的char[],时间复杂度O(n),适合需频繁随机访问或修改单个字符的场景。

Java 中把 String 转成 char 数组最直接的方式是调用 toCharArray() 方法,之后就能用普通 for 或增强 for 遍历每个字符。
使用 toCharArray() 获取字符数组
String 类提供了内置方法 toCharArray(),它会返回一个新创建的 char[],内容与原字符串完全一致。这个数组可读可写,且与原字符串互不影响。
- 语法简洁:`char[] chars = str.toCharArray();`
- 时间复杂度为 O(n),需复制全部字符
- 适合需要频繁随机访问或修改单个字符的场景
用普通 for 循环遍历 char 数组
拿到 char 数组后,可通过下标逐个访问:
String str = "Hello";
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
这种方式便于获取索引位置,也方便结合条件判断(比如跳过空格、统计某字符出现次数)。
立即学习“Java免费学习笔记(深入)”;
用增强 for 循环(for-each)遍历
如果只需读取每个字符,不需要索引,增强 for 更简洁:
for (char c : chars) {
System.out.println(c);
}
注意:增强 for 不能直接修改数组元素(因为 c 是副本),如需修改,请回到普通 for + 下标方式。
不建议直接用 charAt() 代替数组遍历
虽然 `str.charAt(i)` 也能逐个取字符,但每次调用都需边界检查和数组访问,反复调用在长字符串中效率略低;而转成数组后遍历,底层是连续内存访问,JVM 优化更好。除非内存极其敏感或只取少数几个位置的字符,否则优先选 toCharArray()。


















