Wenn ein List
das Endziel ist, wie der Auftraggeber sagte, dann ist die bereits akzeptierte Antwort immer noch die kürzeste und beste. Ich möchte jedoch Alternativen anbieten, indem ich Java 8 Streams Das bringt Ihnen mehr Vorteile, wenn es Teil einer Pipeline für die weitere Verarbeitung ist.
Indem das Ergebnis der Funktion .split (ein natives Array) in einen Stream gewickelt und dann in eine Liste umgewandelt wird.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Wenn es wichtig ist, dass das Ergebnis als ArrayList
wie im Titel des OPs angegeben, können Sie eine andere Collector
Methode:
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Oder durch die Verwendung der RegEx-Parsing-Api:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Beachten Sie, dass Sie immer noch erwägen könnten, die list
Variable typisiert als List<String>
anstelle von ArrayList<String>
. Die generische Schnittstelle für List
sieht immer noch ähnlich genug aus, um die ArrayList
Umsetzung.
Für sich genommen scheinen diese Code-Beispiele nicht viel hinzuzufügen (außer mehr Tipparbeit), aber wenn Sie vorhaben, mehr zu tun, wie diese Antwort zur Konvertierung einer Zeichenkette in eine Liste von Longs veranschaulicht, dass die Streaming-API sehr leistungsfähig ist, da sie es ermöglicht, Ihre Operationen nacheinander in einer Pipeline zu verarbeiten.
Nur der Vollständigkeit halber.