Java 中 char 与 String 相互转换:实用示例与最佳实践
本文将学到什么
本简明指南将介绍 Java 中最常见的两种转换场景:(1) char 转 String,(2) String 转 char。这些技巧在字符串处理、文件 I/O、API 集成中至关重要。
char转StringString转char
char 转 String 的两种标准方法
Java 中 char 是 16 位 Unicode 标量值。String 内部本质是 char 数组,因此转换非常直接。Java 提供两种地道写法:
方法一:Character.toString()
public class CharToStringDemo {
public static void main(String[] args) {
char myChar = 'g';
String myStr = Character.toString(myChar);
System.out.println("转换结果: " + myStr);
}
}
输出:
转换结果: g
方法二:String.valueOf()
public class CharToStringDemo2 {
public static void main(String[] args) {
char myChar = 'g';
String myStr = String.valueOf(myChar);
System.out.println("转换结果: " + myStr);
}
}
输出:
转换结果: g
说明: 两种方法效果等价,String.valueOf() 内部调用的也是 Character.toString()。推荐使用 String.valueOf(),因为它能安全处理 null(针对对象),且语义更通用。
String 转 char
当需要逐字符处理字符串时,charAt(int index) 是首选方法。下面展示遍历字符串每个字符的典型模式:
public class StringToCharDemo {
public static void main(String[] args) {
String myStr = "Guru99";
int length = myStr.length();
for (int i = 0; i < length; i++) {
char myChar = myStr.charAt(i);
System.out.println("索引 " + i + " 处的字符: " + myChar);
}
}
}
输出:
索引 0 处的字符: G
索引 1 处的字符: u
索引 2 处的字符: r
索引 3 处的字符: u
索引 4 处的字符: 9
索引 5 处的字符: 9
补充:其他常用转换场景
字符数组转 String
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String str = new String(chars); // "Hello"
String 转字符数组
String str = "Hello";
char[] chars = str.toCharArray(); // ['H','e','l','l','o']
最佳实践总结
- char → String:首选
String.valueOf(char),简洁且安全。 - String → char:使用
charAt(index)获取单字符,或toCharArray()获取整个数组。 - 注意索引越界:
charAt索引范围为[0, length-1],越界抛出StringIndexOutOfBoundsException。 - 避免使用
"" + char拼接方式,虽可行但可读性差且产生额外对象。
java
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
- Java 对象数组创建:分步指南
- Java String length() 方法:获取字符串长度(示例)
- 精通 Java String.indexOf():定位子字符串与实战示例
- Java String.charAt() 详解:语法、返回类型、异常与实战示例
- 精通 Java String compareTo():语法、用例与实战示例
- 精通 Java String.endsWith():检查字符串后缀(示例)
- Java 字符串替换大全:replace()、replaceAll() 与 replaceFirst() 详解
- Java String toLowerCase() 与 toUpperCase():区域感知的大小写转换
- Java 构造器重载详解:规则、链式调用与实战代码
- Java 递归反转字符串:原理、代码实现与性能分析