构造函数
最直接、最基本的方法就是使用 String 类的构造函数,它专门接受一个 char 数组作为参数。

使用 String(char[] value) 构造函数
这是最直接的方式,它会创建一个新的 String 对象,其内容是 char 数组的完整拷贝。
语法:
String str = new String(charArray);
示例代码:
public class CharArrayToString {
public static void main(String[] args) {
char[] charArray = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
// 使用 String 构造函数
String str = new String(charArray);
System.out.println("转换后的字符串: " + str);
System.out.println("原始 char 数组: " + java.util.Arrays.toString(charArray));
}
}
输出:

转换后的字符串: Hello World
原始 char 数组: [H, e, l, l, o, , W, o, r, l, d]
其他常用方法
除了构造函数,String 类和 java.util.Arrays 类还提供了一些其他便捷的方法。
使用 String.valueOf(char[] data) 静态方法
这个方法的功能和构造函数几乎完全一样,都是将整个 char 数组转换成 String,它通常被认为是更简洁的写法。
语法:
String str = String.valueOf(charArray);
示例代码:

public class CharArrayToStringValueOf {
public static void main(String[] args) {
char[] charArray = {'J', 'a', 'v', 'a'};
// 使用 String.valueOf 静态方法
String str = String.valueOf(charArray);
System.out.println("转换后的字符串: " + str);
}
}
输出:
转换后的字符串: Java
使用 java.util.Arrays.toString(char[] a) (不推荐用于转换)
这个方法不能用来将 char 数组转换为你期望的字符串,它会返回一个代表该数组的字符串,包括方括号和逗号。
示例代码 (演示其“错误”用法):
public class CharArrayToStringWrong {
public static void main(String[] args) {
char[] charArray = {'J', 'a', 'v', 'a'};
// 错误用法:这不会得到 "Java"
String str = java.util.Arrays.toString(charArray);
System.out.println("错误转换后的字符串: " + str);
}
}
输出:
错误转换后的字符串: [J, a, v, a]
当你的目标是得到 char 数组所表示的文本内容时,请绝对不要使用 Arrays.toString(),这个方法主要用于调试和日志打印,以查看数组的内容。
高级用法:转换数组的一部分
如果你想只转换 char 数组中的某一部分,可以使用带偏移量和长度的构造函数或 valueOf 方法。
语法:
// 构造函数 String str = new String(charArray, offset, count); // valueOf 方法 String str = String.valueOf(charArray, offset, count);
offset: 开始转换的索引(从0开始)。count: 要转换的字符数量。
示例代码:
public class CharArraySubstring {
public static void main(String[] args) {
char[] charArray = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
// 只转换从索引 6 开始的 5 个字符
String subStr = new String(charArray, 6, 5);
System.out.println("转换后的子字符串: " + subStr); // 输出 "World"
}
}
性能与选择建议
| 方法 | 描述 | 推荐度 | 备注 |
|---|---|---|---|
new String(charArray) |
使用 String 类的构造函数。 |
⭐⭐⭐⭐ | 最标准、最直接的方法,清晰明了,是大多数情况下的首选。 |
String.valueOf(charArray) |
使用 String 类的静态方法。 |
⭐⭐⭐⭐⭐ | 功能与构造函数相同,但代码更简洁,许多开发者更喜欢这种写法。 |
Arrays.toString(charArray) |
返回数组的字符串表示形式(如 [a, b, c])。 |
❌ | 绝对不要用于将字符数组内容转为字符串,仅用于调试。 |
- 对于绝大多数情况,直接使用
String.valueOf(charArray)是最简洁、最推荐的写法。 - 如果你更喜欢面向对象的方式,或者需要调用带偏移量的构造函数,使用
new String(charArray)完全没有问题。 - 请务必记住
Arrays.toString()的陷阱,避免在需要转换内容时误用它。
