Konvertieren einer Liste in einen String in Java

1. Einleitung

In diesem kurzen Artikel erfahren Sie, wie Sie eine Liste von Elementen in einen String konvertieren . Dies kann in bestimmten Szenarien hilfreich sein, z. B. beim Drucken des Inhalts auf die Konsole in einer für Menschen lesbaren Form zur Überprüfung / zum Debuggen.

2. Standard toString () in einer Liste

Eine der einfachsten Möglichkeiten besteht darin, einfach die toString () -Methode in der Liste aufzurufen :

@Test public void whenListToString_thenPrintDefault() { List intLIst = Arrays.asList(1, 2, 3); System.out.println(intLIst); }

Ausgabe:

[1, 2, 3]

Diese Technik verwendet intern die toString () -Methode des Typs der Elemente in der Liste . In unserem Fall verwenden wir den Integer- Typ, der die toString () -Methode ordnungsgemäß implementiert .

Wenn wir unseren benutzerdefinierten Typ verwenden, z. B. Person , müssen wir sicherstellen, dass die Person- Klasse die toString () -Methode überschreibt und nicht auf der Standardimplementierung basiert. Wenn die toString () -Methode nicht ordnungsgemäß implementiert ist, erhalten Sie möglicherweise unerwartete Ergebnisse:

[[email protected], [email protected], [email protected]]

3. Benutzerdefinierte Implementierung mit Collectors

Oft müssen wir die Ausgabe in einem anderen Format anzeigen.

Im Vergleich zum vorherigen Beispiel ersetzen wir das Komma (,) durch einen Bindestrich (-) und die eckigen Klammern ([,]) durch eine Reihe geschweifter Klammern ({,}):

@Test public void whenCollectorsJoining_thenPrintCustom() { List intList = Arrays.asList(1, 2, 3); String result = intList.stream() .map(n -> String.valueOf(n)) .collect(Collectors.joining("-", "{", "}")); System.out.println(result); }

Ausgabe:

{1-2-3}

Die Collectors.joining () Methode erfordert eine CharSequence , so dass wir brauchen Karte die Integer zu String . Die gleiche Idee kann für jede andere Klasse verwendet werden, auch wenn wir keinen Zugriff auf den Code dieser Klasse haben.

4. Verwenden einer externen Bibliothek

Wir werden jetzt die Verwendung der StringUtils- Klasse von Apache Commons sehen , um ähnliche Ergebnisse zu erzielen.

4.1. Maven-Abhängigkeit

 org.apache.commons commons-lang3 3.6 

Die neueste Version der Abhängigkeit finden Sie hier.

4.2. Implementierung

Die Implementierung ist buchstäblich ein einzelner Methodenaufruf:

@Test public void whenStringUtilsJoin_thenPrintCustom() ")); 

Ausgabe:

1|2|3

Auch diese Implementierung hängt intern von der toString () -Implementierung des von uns in Betracht gezogenen Typs ab.

5. Schlussfolgerung

In diesem Artikel haben wir gesehen, wie einfach es ist, eine Liste mit verschiedenen Techniken in einen String zu konvertieren .

Wie immer finden Sie den vollständigen Quellcode für diesen Artikel auf GitHub.