Как преобразовать массив char в строку?

У меня есть массив char:

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

Мое текущее решение - сделать

String b = new String(a);

Но, конечно, есть лучший способ сделать это?

+373
04 окт. '11 в 23:20
источник поделиться
11 ответов

Нет, это решение абсолютно корректно и очень минимально.

Обратите внимание, что это очень необычная ситуация: поскольку String обрабатывается специально на Java, даже "foo" на самом деле является String. Таким образом, необходимость разделения цепочки на отдельный char и объединение их обратно не требуется в нормальном коде.

Сравните это с C/С++, где "foo" у вас есть пакет char, завершенный нулевым байтом с одной стороны, и String с другой стороны, и многие преобразования между ними из-за устаревших методов.

+198
04 окт. '11 в 23:24
источник

Связанные вопросы


Похожие вопросы

String text = String.copyValueOf(data);

или

String text = String.valueOf(data);

возможно, лучше (инкапсулирует вызов new String).

+141
04 окт. '11 в 23:28
источник

Это преобразует массив char в строку:

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
+36
10 окт. '13 в 19:56
источник
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): обратите внимание на Arrays.toString(c), потому что вы получите "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]" вместо "wwwwww3333dfevvv".

+10
07 нояб. '17 в 16:16
источник

Строка в java - это всего лишь объект вокруг массива символов. Следовательно, a

char[]

идентичен строке Unboxed с теми же символами. Создав новую строку из массива символов

new String(char[])

вы, по сути, говорите компилятору, чтобы он автоматически указывал объект String вокруг вашего массива символов.

+6
15 дек. '16 в 13:52
источник

Вы можете использовать метод 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);

Подробнее о массиве символов в строке вы можете ссылаться ниже

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

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

+3
19 окт. '17 в 10:44
источник
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
04 авг. '17 в 20:10
источник

Попробуйте это

Arrays.toString(array)
0
24 авг. '17 в 23:33
источник

Попробуйте следующее:

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

for (int i = 0; i < charArray.length; i++){
    String str = charArray.toString().join("", charArray[i]);
    System.out.print(str);
}
-2
18 июн. '17 в 23:10
источник

Вы также можете использовать класс StringBuilder

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

Использование String или StringBuilder зависит от ваших требований к методу.

-4
16 апр. '16 в 13:05
источник

1 альтернативный способ:

String b = a + "";
-11
22 дек. '13 в 10:47
источник

Посмотрите другие вопросы по меткам или Задайте вопрос