一、方法定义
public static String toString(char c)
- 所属类:
java.lang.Character
- 参数:
c
—— 要转换的char
类型字符 - 返回值:一个长度为 1 的
String
,表示该字符 - 静态方法:无需创建
Character
实例即可调用 - 线程安全:是(无状态)
🔗 也可以通过实例调用
new Character('a').toString()
,但推荐使用静态方法。
二、功能说明
Character.toString(char c)
的作用是:
将一个
char
类型的字符 转换为对应的String
类型字符串,返回一个只包含该字符的字符串。
🔄 等价写法对比
char ch = 'X';
// 方法1:推荐
String s1 = Character.toString(ch);
// 方法2:使用 String 构造函数
String s2 = new String(new char[]{ch});
// 方法3:字符串拼接(不推荐)
String s3 = "" + ch;
// 方法4:String.valueOf()
String s4 = String.valueOf(ch);
所有方法结果相同:"X"
三、示例代码
示例 1:基本使用
char c = 'A';
String str = Character.toString(c);
System.out.println(str); // 输出:A
System.out.println(str.length()); // 输出:1
示例 2:数字字符转字符串
char digit = '7';
String s = Character.toString(digit);
System.out.println(s); // 输出:7(字符串 "7",不是数值)
示例 3:特殊字符
char space = ' ';
char tab = '\t';
char newline = '\n';
System.out.println("[" + Character.toString(space) + "]"); // [ ]
System.out.println("[" + Character.toString(tab) + "]"); // [ ]
System.out.println("[" + Character.toString(newline) + "]"); // [
]
四、使用技巧
✅ 技巧 1:替代 " " + ch
提升性能
// ❌ 低效:字符串拼接会创建 StringBuilder
String bad = "" + ch;
// ✅ 高效:直接返回字符串
String good = Character.toString(ch);
✅ 技巧 2:与 String.valueOf(char)
对比
String s1 = Character.toString('a'); // 推荐,语义清晰
String s2 = String.valueOf('a'); // 同样高效,也可用
两者内部实现几乎相同,性能无差异,可互换使用。
✅ 技巧 3:用于字符数组转字符串列表
char[] chars = {'h', 'e', 'l', 'l', 'o'};
List<String> stringList = new ArrayList<>();
for (char c : chars) {
stringList.add(Character.toString(c));
}
System.out.println(stringList); // [h, e, l, l, o]
五、常见错误
错误 | 说明 | 修复方式 |
---|---|---|
误以为可处理 null |
Character.toString(null) 编译错误(char 不能为 null ) |
无需处理 null |
混淆 toString() 与 String.valueOf() |
功能相同,但类型不同 | String.valueOf() 支持 Object ,更通用 |
用于多字符转换 | Character.toString() 只能处理单个 char |
使用 new String(char[]) 或 String.valueOf(char[]) |
六、注意事项
- 参数是
char
基本类型,不是Character
包装类(但自动拆箱支持)。 - 不能处理
null
:因为char
是基本类型,不存在null
值。 - 返回新字符串对象:每次调用都会创建一个新的
String
实例(但字符串内容会被常量池缓存)。 - 性能良好:内部使用
String.valueOf(char)
,效率高。 - 线程安全:静态方法,无状态,可并发调用。
七、最佳实践
实践 | 说明 |
---|---|
✅ 优先使用 Character.toString(ch) 或 String.valueOf(ch) |
比 " " + ch 更高效、语义清晰 |
✅ 在工具类或高频调用中使用 | 性能稳定 |
✅ 用于单字符转字符串场景 | 如日志、拼接、集合存储 |
✅ 避免用于大量字符转换 | 应使用 char[] 或 StringBuilder |
✅ 与 StringBuilder.append(char) 配合使用 |
高效构建字符串 |
八、性能优化
写法 | 性能 | 说明 |
---|---|---|
Character.toString(ch) |
⭐⭐⭐⭐☆ | 推荐,清晰高效 |
String.valueOf(ch) |
⭐⭐⭐⭐☆ | 同样推荐 |
"" + ch |
⭐⭐☆☆☆ | 低效,创建 StringBuilder |
new String(new char[]{ch}) |
⭐⭐⭐☆☆ | 可用,但略显冗长 |
✅ 推荐使用
Character.toString(ch)
或String.valueOf(ch)
九、扩展:Character
实例的 toString()
Character ch = 'B';
String s = ch.toString(); // 实例方法,等价于 Character.toString(ch)
内部实现:
public String toString() { return Character.toString(value); // value 是封装的 char }
十、总结:Character.toString() 使用口诀
🔑 “单字符转串,静态最推荐,toString 或 valueOf,避免 '+' 拼接”
✅ 核心要点回顾:
要点 | 内容 |
---|---|
🧩 方法签名 | public static String toString(char c) |
📦 功能 | 将 char 转为长度为 1 的 String |
💡 推荐用法 | Character.toString('A') |
🚫 避免用法 | "" + ch (性能差) |
✅ 等价方法 | String.valueOf(ch) |
🏆 最佳实践 | 用于单字符转换,清晰高效 |
📌 记住:它专为 单个字符 设计,如需处理多个字符,请使用
String
构造函数或StringBuilder
。