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电话).
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.
java中的String只是一个字符数组周围的对象.因此a
char[]
Run Code Online (Sandbox Code Playgroud)
与具有相同字符的未装箱字符串相同.通过从您的字符数组创建一个新的String
new String(char[])
Run Code Online (Sandbox Code Playgroud)
你基本上是在告诉编译器在你的字符数组周围自动放置一个String对象.