it-swarm.com.de

Wie konvertiere ich ein Zeichen-Array zurück in einen String?

Ich habe ein Char-Array:

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

Meine derzeitige Lösung ist zu tun

String b = new String(a);

Aber es gibt doch einen besseren Weg, dies zu tun?

378
chutsu

Nein, diese Lösung ist absolut korrekt und sehr minimal.

Beachten Sie jedoch, dass dies eine sehr ungewöhnliche Situation ist: Da String speziell in Java behandelt wird, ist sogar "foo" tatsächlich ein String. Daher ist es im normalen Code nicht erforderlich, einen String in einzelne chars zu teilen und diese wieder zusammenzufügen.

Vergleichen Sie dies mit C/C++, wo "foo" Sie ein Bündel von chars haben, die auf der einen Seite mit einem Null-Byte und auf der anderen Seite mit string abgeschlossen sind, und viele Konvertierungen zwischen ihnen aufgrund von Legacy-Methoden.

202
A.H.

String text = String.copyValueOf(data);

oder

String text = String.valueOf(data);

ist wohl besser (kapselt den new String -Aufruf).

141
David Titarenco

Dadurch wird das Zeichen-Array wieder in einen String umgewandelt:

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
36
Billz
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();

Es gibt zwei Möglichkeiten, ein Zeichenarray in einen String zu konvertieren.

Arrays.toString(c);

Gibt den String [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v] zurück.

Und:

String.valueOf(c)

Gibt den String wwwwww3333dfevvv zurück.

In Summary: Achten Sie auf Arrays.toString(c), da Sie "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]" anstelle von "wwwwww3333dfevvv" erhalten.

11
AalekhG

Ein String in Java ist lediglich ein Objekt um ein Array von Zeichen. Daher a

char[]

ist identisch mit einem String ohne Box mit denselben Zeichen. Indem Sie eine neue Zeichenfolge aus Ihrem Zeichenfeld erstellen

new String(char[])

sie weisen den Compiler im Wesentlichen an, ein String-Objekt um Ihr Zeichenarray herum zu erstellen.

6
Nathan Meyer

Sie können die String.valueOf -Methode verwenden.

Zum Beispiel,

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

Weitere Informationen zum Zeichen-Array für Zeichenfolgen finden Sie unter den folgenden Links

https://docs.Oracle.com/javase/7/docs/api/Java/lang/String.html

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

3
Shiva
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
 //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

Konvertieren eines beliebigen Array-Typs in einen String mit der Funktion Java 8 Stream

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

Versuche dies

Arrays.toString(array)
0
Jessica Pereira