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

问题描述 投票:0回答:15

我有一个字符数组:

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

我目前的解决方案是做

String b = new String(a);

但是肯定有更好的方法吗?

java arrays string char
15个回答
232
投票

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

但请注意,这是一种非常不寻常的情况:因为

String
在 Java 中是特殊处理的,所以即使
"foo"
实际上也是
String
。因此,在正常代码中不需要将字符串拆分为单独的
char
并将它们连接回来。

将此与 C/C++ 进行比较,其中

"foo"
您有一堆
char
,一侧以零字节终止,另一侧以
string
终止,并且由于遗留方法而导致它们之间存在许多转换。


160
投票

String text = String.copyValueOf(data);

String text = String.valueOf(data);

可以说更好(封装了

new String
调用)。


39
投票

这会将字符数组转换回字符串:

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

22
投票
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"


9
投票

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

char[]

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

new String(char[])

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


4
投票

只需使用如下的 String.value 即可;

  private static void h() {

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

        char [] charArr = helloWorld.toCharArray();

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

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]);
            }       }
    }
}

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 stringValue = 
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());

1
投票

尝试使用

java.util.Arrays
。该模块有多种与数组相关的有用方法。

Arrays.toString(your_array_here[]);

0
投票
String output = new String(charArray);

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


0
投票

另一种方式:

String str= String.join("", charArray);


-1
投票

试试这个

Arrays.toString(array)

-3
投票

试试这个:

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

for (int i = 0; i < charArray.length; i++){
    String str = charArray.toString().join("", charArray[i]);
    System.out.print(str);
}

-4
投票

您还可以使用 StringBuilder 类

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

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


-12
投票

另一种方法是:

String b = a + "";
© www.soinside.com 2019 - 2024. All rights reserved.