Wenn a List
das Endziel ist, wie im OP angegeben, ist die bereits akzeptierte Antwort immer noch die kürzeste und beste. Ich möchte jedoch Alternativen mit Java 8-Streams bereitstellen , die Ihnen mehr Nutzen bringen, wenn sie Teil einer Pipeline für die weitere Verarbeitung sind.
Indem Sie das Ergebnis der .split-Funktion (ein natives Array) in einen Stream einbinden und dann in eine Liste konvertieren.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Wenn es wichtig ist, dass das Ergebnis ArrayList
gemäß dem Titel aus dem OP gespeichert wird , können Sie eine andere Collector
Methode verwenden:
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Oder mithilfe der RegEx-Parsing-API:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Beachten Sie, dass Sie die list
Variable weiterhin als List<String>
anstelle von eingeben können ArrayList<String>
. Die generische Oberfläche für List
sieht immer noch ziemlich ähnlich aus wie dieArrayList
Implementierung .
An sich scheinen diese Codebeispiele nicht viel hinzuzufügen (außer mehr Eingabe), aber wenn Sie vorhaben, mehr zu tun, wie diese Antwort zum Konvertieren eines Strings in eine Liste von Longs zeigt, ist die Streaming-API wirklich leistungsfähig, indem sie dies zulässt um Ihre Operationen nacheinander zu leiten.
Der Vollständigkeit halber.