我有一个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 str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();

现在要将字符数组转换为String,有两种方法。

Arrays.toString(c);

返回字符串[w, w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]。

And:

String.valueOf(c)

返回字符串wwwwww3333devvv。

总结:注意Arrays.toString(c),因为你会得到“[w, w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]”而不是“wwwwww3333dfevvv”。

另一种方法是:

String b = a + "";

只使用字符串。以下值;

  private static void h() {

        String helloWorld = "helloWorld";
        System.out.println(helloWorld);

        char [] charArr = helloWorld.toCharArray();

        System.out.println(String.valueOf(charArr));
    }
String output = new String(charArray);

其中charArray是字符数组,输出是转换为字符串的字符数组。

java中的字符串只是一个围绕字符数组的对象。因此

char[]

与未装箱的具有相同字符的字符串相同。通过从你的字符数组中创建一个新的字符串

new String(char[])

你实际上是在告诉编译器在你的字符数组周围自动装箱一个String对象。