我有一个char数组:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
我目前的解决方案是
String b = new String(a);
但肯定有更好的方法吗?
答案 0 :(得分:198)
不,这个解决方案绝对正确且非常简单。
但请注意,这是一种非常不寻常的情况:因为String
是专门用Java处理的,所以即使"foo"
实际上是String
。因此,在普通代码中不需要将字符串拆分为单个char
并将其连接回来。
将此与C / C ++进行比较,其中"foo"
您有一组char
在一侧以零字节结束,另一侧以string
结束,并且它们之间有许多转换做遗留方法。
答案 1 :(得分:140)
String text = String.copyValueOf(data);
或
String text = String.valueOf(data);
可以说更好(封装了new String
调用)。
答案 2 :(得分:36)
这会将char数组转换回字符串:
char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
答案 3 :(得分:8)
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
现在将字符数组转换为String,有两种方法。
Arrays.toString(c);
返回字符串[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
。
和
String.valueOf(c)
返回字符串wwwwww3333dfevvv
。
答案 4 :(得分:6)
java中的String只是一个字符数组周围的对象。因此一个
char[]
与具有相同字符的未装箱字符串相同。通过从字符数组中创建一个新的String
new String(char[])
你实际上是在告诉编译器在你的字符数组周围自动放置一个String对象。
答案 5 :(得分:2)
package naresh.java;
public class TestDoubleString {
public static void main(String args[]){
String str="abbcccddef";
char charArray[]=str.toCharArray();
int len=charArray.length;
for(int i=0;i<len;i++){
//if i th one and i+1 th character are same then update the charArray
try{
if(charArray[i]==charArray[i+1]){
charArray[i]='0';
}}
catch(Exception e){
System.out.println("Exception");
}
}//finally printing final character string
for(int k=0;k<charArray.length;k++){
if(charArray[k]!='0'){
System.out.println(charArray[k]);
} }
}
}
答案 6 :(得分:2)
您可以使用String.valueOf
方法。
例如,
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
String b = String.valueOf(a);
System.out.println("Char Array back to String is: " + b);
有关char数组到字符串的更多信息,请参阅下面的链接
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
答案 7 :(得分:1)
//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 Stream函数将任何给定的数组类型转换为String
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
答案 8 :(得分:1)
尝试使用java.util.Arrays
。该模块具有与数组有关的各种有用方法。
Arrays.toString(your_array_here[]);
答案 9 :(得分:0)
试试这个
Arrays.toString(array)
答案 10 :(得分:0)
只需使用如下的String.value;
private static void h() {
String helloWorld = "helloWorld";
System.out.println(helloWorld);
char [] charArr = helloWorld.toCharArray();
System.out.println(String.valueOf(charArr));
}
答案 11 :(得分:-1)
String output = new String(charArray);
其中charArray是字符数组,输出是将您的字符数组转换为字符串。
答案 12 :(得分:-2)
试试这个:
CharSequence[] charArray = {"a","b","c"};
for (int i = 0; i < charArray.length; i++){
String str = charArray.toString().join("", charArray[i]);
System.out.print(str);
}
答案 13 :(得分:-4)
您也可以使用StringBuilder类
String b = new StringBuilder(a).toString();
String或StringBuilder的使用因方法要求而异。
答案 14 :(得分:-11)
另一种方法是:
String b = a + "";