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.
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
}
}
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
}
}
Wenn es sich um eine Sammlung vom Typ List
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)
}
}
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