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

时间:2011-10-04 23:20:19

标签: java arrays string char

我有一个char数组:

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

我目前的解决方案是

String b = new String(a);

但肯定有更好的方法吗?

15 个答案:

答案 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

https://www.flowerbrackets.com/char-array-to-string-java/

答案 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 + "";