char是16位基本类型,String是不可变引用类型;char转String推荐String.valueOf(),String转char需先确保长度为1再用charAt();批量转换用new String(char[])或toCharArray();处理emoji等需用codePoint相关方法。

Java中字符(char)与字符串(String)的相互转换非常直接,核心在于理解两者本质:char是16位基本数据类型,表示单个Unicode字符;String是不可变的引用类型,本质是字符序列。
最推荐、最高效的方式是使用String.valueOf(char),它专为基本类型设计,简洁且无多余对象创建。
String s = String.valueOf('A');
String s = "" + 'A';(编译器会优化,但语义不如valueOf清晰)new String(new char[]{'A'})会额外创建数组和String对象,效率低且冗余字符串可能含0个、1个或多个字符,因此不能无条件“转成char”。只有当字符串长度为1时,才能安全获取其唯一字符。
char c = s.charAt(0);(需先判断s.length() == 1)char c = s.toCharArray()[0];(同样要求非空且长度为1,否则抛StringIndexOutOfBoundsException或ArrayIndexOutOfBoundsException)(char)str这类语法,编译报错处理多个字符时,常涉及char[]与String的转换,这是实际开发高频操作。
立即学习“Java免费学习笔记(深入)”;
String s = new String(charArray); 或 String s = String.valueOf(charArray);
char[] chars = s.toCharArray();(注意返回的是副本,修改不影响原字符串)char[] sub = s.substring(1, 3).toCharArray();
Java的char是UTF-16编码单位,一个emoji或某些汉字可能占两个char(即代理对)。此时charAt()或toCharArray()可能无法正确拆分语义字符。
s.codePointAt(i)和s.offsetByCodePoints()
s.codePoints().forEach(...)或传统循环配合Character.isSurrogatePair()判断以上就是Java中字符与字符串如何互转_Java字符处理语法说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号