449 Stimmen

Wie konvertiert man ein char-Array zurück in eine Zeichenkette?

Ich habe ein char-Array:

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

Meine derzeitige Lösung sieht so aus

String b = new String(a);

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

231voto

A.H. Punkte 60629

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

Beachten Sie jedoch, dass dies eine sehr ungewöhnliche Situation ist: Denn String wird in Java besonders behandelt, auch "foo" ist eigentlich ein String . Die Notwendigkeit der Aufteilung eines Strings in einzelne char s und sie wieder zu verbinden, ist im normalen Code nicht erforderlich.

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

160voto

David Titarenco Punkte 31667

String text = String.copyValueOf(data);

o

String text = String.valueOf(data);

ist wohl besser (kapselt die new String Aufruf).

39voto

Billz Punkte 7503

Dies konvertiert char array zurück in string:

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

22voto

AalekhG Punkte 341
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();

Für die Konvertierung einer Zeichenfolge in einen String gibt es zwei Möglichkeiten.

Arrays.toString(c);

Gibt die Zeichenkette [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v] .

Und:

String.valueOf(c)

Gibt die Zeichenkette wwwwww3333dfevvv .

Zusammenfassung : achten Sie auf Arrays.toString(c) denn Sie erhalten "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]" anstelle von "wwwwww3333dfevvv" .

9voto

Nathan Meyer Punkte 381

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

char[]

ist identisch mit einem unboxed String mit denselben Zeichen. Indem Sie einen neuen String aus Ihrem Array von Zeichen erstellen

new String(char[])

weisen Sie den Compiler im Wesentlichen an, ein String-Objekt um Ihr Array von Zeichen herum zu koppeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X