| 转换方向 | 方法/代码 | 说明 |
|---|---|---|
String -> char |
charAt(index) |
获取字符串中指定索引的单个字符。 |
String -> char[] |
toCharArray() |
将整个字符串转换为字符数组。 |
char -> String |
String.valueOf(char) |
推荐,将单个字符转换为字符串。 |
Character.toString(char) |
推荐,将单个字符转换为字符串。 | |
"" + char |
简单,但会创建新的 StringBuilder 对象,性能略差。 |
|
char[] -> String |
new String(charArray) |
推荐,用字符数组创建新字符串。 |
String.valueOf(charArray) |
推荐,用字符数组创建新字符串。 |
String 转 char
将 String 转换为单个 char
如果字符串的长度为1,你可以使用 String.charAt() 方法。

方法:public char charAt(int index)
- 返回指定索引处的
char值。 - 索引从
0开始。 - 注意:如果字符串为空 () 或索引越界,会抛出
StringIndexOutOfBoundsException。
示例代码:
public class StringToChar {
public static void main(String[] args) {
String str = "A";
// 将 String 转换为 char
char ch = str.charAt(0);
System.out.println("原始字符串: " + str);
System.out.println("转换后的字符: " + ch);
System.out.println("字符的类型: " + ((Object)ch).getClass().getSimpleName()); // 输出 Character
}
}
⚠️ 重要注意事项:
char 是 Java 的基本数据类型,而 String 是对象。charAt() 返回的是一个 char 基本类型,而不是 Character 对象,当你需要一个 Character 对象时(例如在泛型集合中),Java 会自动进行自动装箱。
// 自动装箱示例 Character chObject = str.charAt(0); // char 自动装箱为 Character
将 String 转换为 char 数组
如果你想获取字符串中所有的字符,可以使用 toCharArray() 方法。

方法:public char[] toCharArray()
- 将此字符串转换为一个新的字符数组。
示例代码:
public class StringToCharArray {
public static void main(String[] args) {
String str = "Hello";
// 将 String 转换为 char 数组
char[] charArray = str.toCharArray();
System.out.println("原始字符串: " + str);
System.out.println("转换后的字符数组: " + java.util.Arrays.toString(charArray));
// 遍历字符数组
System.out.print("遍历字符数组: ");
for (char c : charArray) {
System.out.print(c + " ");
}
}
}
char 转 String
将单个 char 转换为 String
有几种方法可以实现,推荐使用静态方法。
方法 1:String.valueOf(char data) (推荐)

- 这是最直接、最高效的方法。
方法 2:Character.toString(char c) (推荐)
Character类的静态方法,也非常清晰。
方法 3:String 构造函数
new String(char[] value)需要一个字符数组,对于单个字符,你需要先创建一个只有一个元素的数组。
方法 4:字符串连接 ("" + char)
- 这种方法会创建一个临时的
StringBuilder来完成连接,虽然简单,但在性能敏感的代码中不如前两种方法。
示例代码:
public class CharToString {
public static void main(String[] args) {
char ch = 'Z';
// 方法 1: String.valueOf() - 推荐
String str1 = String.valueOf(ch);
System.out.println("使用 String.valueOf(): " + str1);
// 方法 2: Character.toString() - 推荐
String str2 = Character.toString(ch);
System.out.println("使用 Character.toString(): " + str2);
// 方法 3: String 构造函数
String str3 = new String(new char[]{ch});
System.out.println("使用 String 构造函数: " + str3);
// 方法 4: 字符串连接
String str4 = "" + ch;
System.out.println("使用字符串连接: " + str4);
// 验证类型
System.out.println("\n验证 str1 的类型: " + str1.getClass().getSimpleName()); // 输出 String
}
}
char[] 转 String
如果你有一个字符数组,想把它合并成一个字符串。
方法 1:new String(char[] value) (推荐)
- 使用字符数组创建一个新的
String对象。
方法 2:String.valueOf(char[] data) (推荐)
- 功能与构造函数类似,也是将字符数组内容复制到一个新的
String对象中。
示例代码:
public class CharArrayToString {
public static void main(String[] args) {
char[] charArray = {'J', 'a', 'v', 'a'};
// 方法 1: new String() - 推荐
String str1 = new String(charArray);
System.out.println("使用 new String(): " + str1);
// 方法 2: String.valueOf() - 推荐
String str2 = String.valueOf(charArray);
System.out.println("使用 String.valueOf(): " + str2);
}
}
总结与最佳实践
| 转换类型 | 推荐方法 | 原因 |
|---|---|---|
String -> char |
myString.charAt(0) |
获取单个字符的标准方法。 |
String -> char[] |
myString.toCharArray() |
获取所有字符的标准方法。 |
char -> String |
String.valueOf(myChar) 或 Character.toString(myChar) |
代码清晰、性能好,是公认的最佳实践,避免使用 "" + char。 |
char[] -> String |
new String(myCharArray) 或 String.valueOf(myCharArray) |
都是标准且高效的方法,可以根据个人或团队编码风格选择。 |
记住这些核心方法,你就可以在 Java 中轻松自如地进行 String 和 char 之间的转换了。
