首页 文章

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

提问于
浏览
342

我有一个char数组:

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

我目前的解决方案是做

String b = new String(a);

但肯定有更好的方法吗?

11 回答

  • 2

    java中的String只是一个字符数组周围的对象 . 因此a

    char[]
    

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

    new String(char[])
    

    你基本上是在告诉编译器在你的字符数组周围自动放置一个String对象 .

  • 36

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

    但请注意,这是一种非常不寻常的情况:因为 String 是专门用Java处理的,所以即使 "foo" 实际上是 String . 因此,在普通代码中不需要将字符串拆分为单独的 char 并将它们连接回来 .

    将此与C / C进行比较,其中 "foo" 有一组 char ,一端是零字节,另一端是 string ,由于传统方法,它们之间有很多转换 .

  • -4

    String text = String.copyValueOf(data);

    要么

    String text = String.valueOf(data);

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

  • -11

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

    char[] charArray = {'a', 'b', 'c'};
    String str = String.valueOf(charArray);
    
  • 5
    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 .

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

  • 4

    试试这个

    Arrays.toString(array)
    
  • 0

    试试这个:

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

    您还可以使用StringBuilder类

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

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

  • 186

    另一种方法是:

    String b = a + "";
    

相关问题