如何将char数组转换回字符串?

chu*_*tsu 388 java arrays string char

我有一个char数组:

char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是做

String b = new String(a);
Run Code Online (Sandbox Code Playgroud)

但肯定有更好的方法吗?

A.H*_*.H. 206

不,这个解决方案绝对正确且极少.

但请注意,这是一个非常不寻常的情况:因为String特别是用Java处理,甚至"foo"实际上是一个String.因此,char在普通代码中不需要将String拆分为单个s并将其连接回来.

将其与C/C++进行比较,在C/C++中,"foo"您有一组chars在一侧和string另一侧以零字节结束,并且由于传统方法而在它们之间进行了许多转换.


Dav*_*nco 143

String text = String.copyValueOf(data);

要么

String text = String.valueOf(data);

可以说是更好(封装了new String电话).

  • 两种方法都调用`String(char [])`或其变体.复制部分在`String(char [])`里面完成.除了与其他`valueOf`方法的对称性之外,这对直接调用没有任何好处. (6认同)

Bil*_*llz 36

这会将char数组转换回字符串:

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
Run Code Online (Sandbox Code Playgroud)


小智 12

String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
Run Code Online (Sandbox Code Playgroud)

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

Arrays.toString(c);
Run Code Online (Sandbox Code Playgroud)

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

和:

String.valueOf(c)
Run Code Online (Sandbox Code Playgroud)

返回字符串wwwwww3333dfevvv.


Nat*_*yer 6

java中的String只是一个字符数组周围的对象.因此a

char[]
Run Code Online (Sandbox Code Playgroud)

与具有相同字符的未装箱字符串相同.通过从您的字符数组创建一个新的String

new String(char[])
Run Code Online (Sandbox Code Playgroud)

你基本上是在告诉编译器在你的字符数组周围自动放置一个String对象.