一、方法定义

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[])

六、注意事项

  1. 参数是 char 基本类型,不是 Character 包装类(但自动拆箱支持)。
  2. 不能处理 null:因为 char 是基本类型,不存在 null 值。
  3. 返回新字符串对象:每次调用都会创建一个新的 String 实例(但字符串内容会被常量池缓存)。
  4. 性能良好:内部使用 String.valueOf(char),效率高。
  5. 线程安全:静态方法,无状态,可并发调用。

七、最佳实践

实践 说明
✅ 优先使用 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