Konvertieren Sie das Zeichenarray in Java in einen String

1. Übersicht

In diesem kurzen Tutorial werden verschiedene Möglichkeiten zum Konvertieren eines Zeichenarrays in einen String in Java behandelt.

2. String-Konstruktor

Die String- Klasse verfügt über einen Konstruktor, der ein char- Array als Argument akzeptiert :

@Test public void whenStringConstructor_thenOK() { final char[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = new String(charArray); assertThat(string, is("baeldung")); }

Dies ist eine der einfachsten Möglichkeiten, ein char- Array in einen String zu konvertieren . Es ruft intern String # valueOf auf, um ein String- Objekt zu erstellen .

3. String.valueOf ()

Und sprechen valueOf (), können wir es auch direkt verwenden:

@Test public void whenStringValueOf_thenOK() { final char[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = String.valueOf(charArray); assertThat(string, is("baeldung")); }

String # copyValueOf ist eine weitere Methode, die semantisch der valueOf () -Methode entspricht, aber nur in den ersten Java-Versionen von Bedeutung war. Ab heute ist die copyValueOf () -Methode redundant und wir empfehlen, sie nicht zu verwenden.

4. StringBuilder 's toString ()

Was ist, wenn wir aus einem Array von char- Arrays einen String bilden möchten ?

Dann können wir zuerst eine StringBuilder- Instanz instanziieren und ihre append- Methode (char []) verwenden, um alle Inhalte zusammen anzuhängen.

Später werden wir die toString () -Methode verwenden, um die String- Darstellung zu erhalten:

@Test public void whenStringBuilder_thenOK() { final char[][] arrayOfCharArray = { { 'b', 'a' }, { 'e', 'l', 'd', 'u' }, { 'n', 'g' } }; StringBuilder sb = new StringBuilder(); for (char[] subArray : arrayOfCharArray) { sb.append(subArray); } assertThat(sb.toString(), is("baeldung")); }

Wir können den obigen Code weiter optimieren, indem wir den StringBuilder mit der genauen Länge instanziieren, die wir benötigen.

5. Java 8-Streams

Mit der Methode Arrays.stream (T [] Objekt) können wir einen Stream über ein Array vom Typ T öffnen .

Wenn wir ein Zeichenarray haben , können wir die Operation Collectors.joining () verwenden, um eine String- Instanz zu bilden :

@Test public void whenStreamCollectors_thenOK() { final Character[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; Stream charStream = Arrays.stream(charArray); String string = charStream.map(String::valueOf).collect(Collectors.joining()); assertThat(string, is("baeldung")); }

Der Nachteil bei diesem Ansatz ist , dass wir die uns berufen valueOf () über jedes Zeichenelement und so wird es ziemlich langsam sein.

6. Guava Common Base Joiner

Nehmen wir jedoch an, dass die Zeichenfolge, die wir erstellen müssen, eine begrenzte Zeichenfolge ist. Guave gibt uns eine praktische Methode:

@Test public void whenGuavaCommonBaseJoiners_thenOK() { final Character[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = Joiner.on("|").join(charArray); assertThat(string, is("b|a|e|l|d|u|n|g")); }

Beachten Sie erneut, dass die join () -Methode nur ein Zeichenarray und nicht das primitive char- Array akzeptiert .

7. Fazit

In diesem Tutorial haben wir Möglichkeiten untersucht, wie ein bestimmtes Zeichenarray in seine String- Darstellung in Java konvertiert werden kann .

Wie üblich finden Sie alle Codebeispiele auf GitHub.