How to convert a char array back to a string?
I have a char array:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
My current solution is to do
String b = new String(a);
But surely there is a better way of doing this?
Solution 1:
No, that solution is absolutely correct and very minimal.
Note however, that this is a very unusual situation: Because String
is handled specially in Java, even "foo"
is actually a String
. So the need for splitting a String into individual char
s and join them back is not required in normal code.
Compare this to C/C++ where "foo"
you have a bundle of char
s terminated by a zero byte on one side and string
on the other side and many conversions between them due do legacy methods.
Solution 2:
String text = String.copyValueOf(data);
or
String text = String.valueOf(data);
is arguably better (encapsulates the new String
call).