我有一个char数组:

char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};

我目前的解决方案是做

String b = new String(a);

但肯定有更好的办法吧?


当前回答

你也可以使用StringBuilder类

String b = new StringBuilder(a).toString();

String或StringBuilder的使用因方法需求而异。

其他回答

不,这个解决方案是绝对正确的,而且非常简单。

但是请注意,这是一种非常不寻常的情况:因为String在Java中是专门处理的,甚至“foo”实际上也是一个String。因此,在正常的代码中,不需要将字符串分割成单独的字符并将它们重新连接起来。

与C/ c++相比,在“foo”中,你有一个字符束,一端以0字节结束,另一端以字符串结束,它们之间的许多转换都是由于遗留方法。

试试这个:

CharSequence[] charArray = {"a","b","c"};

for (int i = 0; i < charArray.length; i++){
    String str = charArray.toString().join("", charArray[i]);
    System.out.print(str);
}
 //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 text = String. copyvalueof (data);

or

字符串文本= String. valueof(数据);

可以说更好(封装了新的String调用)。

另一种方法是:

String b = a + "";