Verschiedene Möglichkeiten zum Verketten von durch Kommas getrennten Zeichenfolgen in Java

Manchmal möchte ich Arrays und Listen in Java mit durch Kommas getrennten Zeichenfolgen verketten, und ich habe mich gefragt, ob es einen anderen Weg als die StringJoiner-Klasse gibt, also habe ich mir eine Notiz gemacht. Schließlich habe ich StringUtils # join () verwendet. Wenn es ein String-Array wäre, wäre String # join () in Ordnung gewesen, aber da es ein int-Array war, habe ich StringUtils gewählt.

Von hier an werde ich vorstellen, was ich untersucht habe.

Methode mit String Joiner

Die StringJoiner-Klasse ist in Java 7 verfügbar. Wenn es sich nicht um ein Array vom Typ String handelt, muss es in einen String-Typ konvertiert werden.

import java.util.StringJoiner;
import java.util.Arrays;

public class StringJoinerSample {
  public static void main(String args[]) {
    int[] arr = {1, 2, 3, 4, 5};
    StringJoiner sj = new StringJoiner(",");
    Arrays.stream(arr).forEach(i -> sj.add(String.valueOf(i)));
    System.out.println(sj.toString()); // => 1,2,3,4,5
  }
}

Methode mit String # join ()

Für Arrays von String können Sie "String # join ()" verwenden. String # join () kann von Java 8 aus verwendet werden.

public class MyClass {
    public static void main(String args[]) {
        String[] arr = {"en", "ja", "fr", "es", "zh"};
        String str = String.join(",", arr);
        System.out.println(str); // => en,ja,fr,es,zh
    }
}

Sie können auch eine Liste als Argument verwenden.

import java.util.Arrays;
import java.util.List;

public class MyClass {
  public static void main(String args[]) {
    List<String> list = Arrays.asList("en", "ja", "fr", "es", "zh");
    String str = String.join(",", list);
    System.out.println(str); // => en,ja,fr,es,zh
  }
}

Methode mit Collectors # Joining

Wenn es sich um eine Sammlung vom Typ List handelt, kann sie wie folgt verkettet werden.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class MyClass {
  public static void main(String args[]) {
    List<String> list = Arrays.asList("en", "ja", "fr", "es", "zh");
    String str = list.stream().collect(Collectors.joining(","));
    System.out.println(str); // => en,ja,fr,es,zh
  }
}

Es ist auch möglich, Vorder- und Rückseite mit Klammern () zu versehen.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class MyClass {
  public static void main(String args[]) {
    List<String> list = Arrays.asList("en", "ja", "fr", "es", "zh");
    String str = list.stream().collect(Collectors.joining(",", "(", ")"));
    System.out.println(str); // => (en,ja,fr,es,zh)
  }
}

Methode mit StringUtils # join ()

Die StringUtils-Klasse befindet sich in org.apache.commons: commons-lang3. Sie müssen die Bibliothek mit gradle oder maven installieren.

org.apache.commons:commons-lang3:3.6

Sie können es wie folgt in eine Zeile schreiben. Da StringUtils # join () ein Array von Objekten als Argument verwendet Ich verwende "ArrayUtils # toObject ()", um in ein Array der Integer-Klasse zu konvertieren.

import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

public class MyClass {
    public static void main(String args[]) {
        int[] arr = {1,2,3,4,5};
        String str = StringUtils.join(ArrayUtils.toObject(arr), ",");
        System.out.println(str); // => 1,2,3,4,5
    }
}

Eine weitere Option ist die Verwendung der Joiner-Klasse von Google Guava.

Danke, dass Sie bis zum Ende für mich gelesen haben. Wenn Sie Mängel oder Fragen haben, verwenden Sie bitte den Kommentarbereich, bearbeiten Sie die Anfrage, Twitter usw. Ich würde es begrüßen, wenn Sie mir sagen könnten, ob es einen anderen Weg gibt.

Recommended Posts

Verschiedene Möglichkeiten zum Verketten von durch Kommas getrennten Zeichenfolgen in Java
So verketten Sie Zeichenfolgen mit Java
So verbinden Sie die Zeichenfolgen in der Liste durch Kommas getrennt
Verketten Sie Zeichenfolgen, die von Mehrobjektmethoden in Java Stream zurückgegeben werden
Zwei Möglichkeiten, einen Thread in Java + @ zu starten
So verketten Sie Zeichenfolgen
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Beurteilen Sie, ob die zu vergleichenden Zeichenfolgen in Java identisch sind
Multithreaded passend zur [Java] Vorlage
Wie man JAVA in 7 Tagen lernt
Protokollausgabe in Datei in Java
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
Versuchen Sie, Yuma in Java zu implementieren
[Java] Java soll in Ordnung sein, um Zeichenfolgen mit + zu verketten, also habe ich es überprüft
So implementieren Sie den Kalman-Filter mit Java
Versuchen Sie, Project Euler in Java zu lösen
Einfach, Slack Bot mit Java zu machen
Java-Referenz zum Verständnis in der Abbildung
Versuchen Sie, n-ary Addition in Java zu implementieren
Ändern Sie die Liste <Optional <T >> in Java in Optional <Liste <T >>
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
Einbetten von Janus Graph in Java
So erhalten Sie das Datum mit Java
Fügen Sie Word-Dokumenten in Java Fußnoten hinzu
[Java Bronze] 5 Probleme zu beachten
Beispiel zum Entpacken einer gz-Datei in Java
Von Java nach C und von C nach Java in Android Studio
Fügen Sie dem Cookie in Java das SameSite-Attribut hinzu
[Java] Verschiedene Methoden, um den in List gespeicherten Wert durch iterative Verarbeitung zu ermitteln