我有一个char数组:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
我目前的解决方案是做
String b = new String(a);
但肯定有更好的办法吧?
我有一个char数组:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
我目前的解决方案是做
String b = new String(a);
但肯定有更好的办法吧?
当前回答
String output = new String(charArray);
其中charArray是字符数组,输出是转换为字符串的字符数组。
其他回答
java中的字符串只是一个围绕字符数组的对象。因此
char[]
与未装箱的具有相同字符的字符串相同。通过从你的字符数组中创建一个新的字符串
new String(char[])
你实际上是在告诉编译器在你的字符数组周围自动装箱一个String对象。
String output = new String(charArray);
其中charArray是字符数组,输出是转换为字符串的字符数组。
//Given Character Array
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
//Converting Character Array to String using String funtion
System.out.println(String.valueOf(a));
//OUTPUT : hello world
使用Java 8的流函数将任何给定的数组类型转换为字符串
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
不,这个解决方案是绝对正确的,而且非常简单。
但是请注意,这是一种非常不寻常的情况:因为String在Java中是专门处理的,甚至“foo”实际上也是一个String。因此,在正常的代码中,不需要将字符串分割成单独的字符并将它们重新连接起来。
与C/ c++相比,在“foo”中,你有一个字符束,一端以0字节结束,另一端以字符串结束,它们之间的许多转换都是由于遗留方法。
试试这个
Arrays.toString(array)