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

我有一个char数组:

char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};

我目前的解决方案是做

String b = new String(a);

但肯定有更好的办法吧?

783893 次浏览

不,这个解决方案是绝对正确的,而且非常简单。

然而,请注意,这是一个非常不寻常的情况:因为String在Java中是专门处理的,甚至"foo"实际上也是String。因此,在正常的代码中,不需要将字符串分割为单独的__abc3并将它们重新连接起来。

与此相比,C/ c++的"foo"中有一个__abc1包,其中一端以0字节结束,另一端以string结束,它们之间的许多转换都是由于遗留方法。

String text = String.copyValueOf(data);

String text = String.valueOf(data);

可以说更好(封装new String调用)。

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

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);

另一种方法是:

String b = a + "";

你也可以使用StringBuilder类

String b = new StringBuilder(a).toString();

String或StringBuilder的使用因方法需求而异。

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

char[]

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

new String(char[])

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

试试这个:

CharSequence[] charArray = {"a","b","c"};


for (int i = 0; i < charArray.length; i++){
String str = charArray.toString().join("", charArray[i]);
System.out.print(str);
}
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]);
}       }
}
}

试试这个

Arrays.toString(array)
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

总之:注意Arrays.toString(c),因为你将得到"[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"而不是"wwwwww3333dfevvv"

 //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的流函数将任何给定的数组类型转换为字符串

String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());

只使用字符串。以下值;

  private static void h() {


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


char [] charArr = helloWorld.toCharArray();


System.out.println(String.valueOf(charArr));
}

尝试使用java.util.Arrays。这个模块有许多与数组相关的有用方法。

Arrays.toString(your_array_here[]);
String output = new String(charArray);

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