在 Java 中,将 char 类型转换为 String 类型有多种方法,以下是几种常见的方法,从最推荐到其他可选方法,并附有详细解释和示例代码。

使用 String.valueOf(char c) - 最推荐
这是最直接、最清晰且性能最好的方法。String 类提供了一个重载的 valueOf() 方法,专门用于将 char 转换为 String。
特点:
- 可读性强:代码意图非常明确。
- 性能高:这是 Java 标准库为此转换提供的专用方法,经过高度优化。
- 简洁:一行代码即可完成。
示例代码:
public class CharToStringExample {
public static void main(String[] args) {
char myChar = 'A';
// 使用 String.valueOf() 进行转换
String myString = String.valueOf(myChar);
System.out.println("原始 char 值: " + myChar);
System.out.println("转换后的 String 值: " + myString);
System.out.println("新 String 的长度: " + myString.length()); // 长度为 1
}
}
输出:

原始 char 值: A
转换后的 String 值: A
新 String 的长度: 1
使用 char 数组的构造方法
一个 String 对象可以由一个 char 数组构造,由于 char 本质上是一个单元素的字符数组,你可以创建一个只包含该 char 的新数组,然后用它来构造 String。
特点:
- 可行:可以正确实现转换。
- 略显冗余:相比
String.valueOf(),代码稍显啰嗦,需要创建一个临时数组。
示例代码:
public class CharToStringArrayExample {
public static void main(String[] args) {
char myChar = 'B';
// 1. 创建一个包含该 char 的单元素数组
char charArray = new char[]{myChar};
// 2. 使用该数组构造 String
String myString = new String(charArray);
System.out.println("原始 char 值: " + myChar);
System.out.println("转换后的 String 值: " + myString);
}
}
输出:

原始 char 值: B
转换后的 String 值: B
使用字符串连接(Concatenation)
你可以将 char 与一个空字符串 进行连接,Java 会自动将 char 转换为 String 以完成连接操作。
特点:
- 简单直观:语法简单,容易理解。
- 性能稍差:在底层,这涉及到创建一个
StringBuilder对象,然后进行 append 操作,虽然对于现代 JVM 这种优化得很好,但理论上不如String.valueOf()直接。 - 可读性稍差:意图不如
String.valueOf()明确,可能会让阅读代码的人疑惑为什么要连接一个空字符串。
示例代码:
public class CharToStringConcatExample {
public static void main(String[] args) {
char myChar = 'C';
// 通过与空字符串连接来转换
String myString = "" + myChar;
System.out.println("原始 char 值: " + myChar);
System.out.println("转换后的 String 值: " + myString);
}
}
输出:
原始 char 值: C
转换后的 String 值: C
使用 Character.toString(char c)
Character 类是 char 的包装类,它也提供了一个 toString() 方法来完成这个转换,这个方法内部通常会调用 String.valueOf(),所以它们在功能上是等价的。
特点:
- 功能等价:与
String.valueOf()效果完全相同。 - 语义上更贴近:
Character是char的包装类,所以用它的toString()方法在逻辑上也说得通。
示例代码:
public class CharToStringWrapperExample {
public static void main(String[] args) {
char myChar = 'D';
// 使用 Character.toString() 进行转换
String myString = Character.toString(myChar);
System.out.println("原始 char 值: " + myChar);
System.out.println("转换后的 String 值: " + myString);
}
}
输出:
原始 char 值: D
转换后的 String 值: D
总结与最佳实践
| 方法 | 示例 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|---|
String.valueOf() |
String s = String.valueOf('c'); |
最清晰、最直接、性能最高 | 无 | ⭐⭐⭐⭐⭐ (首选) |
Character.toString() |
String s = Character.toString('c'); |
功能等价,语义清晰 | 稍微冗长一点 | ⭐⭐⭐⭐ |
| 字符串连接 | String s = "" + 'c'; |
语法简单,直观 | 性能稍差,意图不明确 | ⭐⭐⭐ |
char 数组构造 |
String s = new String(new char[]{'c'}); |
可行 | 代码冗余,效率低 | ⭐ |
在日常开发中,强烈推荐使用 String.valueOf(char c),这是最符合 Java 编码规范、可读性最好且性能最优的方式,如果你认为 Character.toString() 更符合你的编码风格,它也是一个完全可接受的选择,尽量避免使用字符串连接或数组构造方法来完成这个简单的转换。
