Se a Listè l'obiettivo finale come dichiarato dall'OP, la risposta già accettata è ancora la più breve e la migliore. Tuttavia, desidero fornire alternative utilizzando Java 8 Streams , che ti daranno maggiori vantaggi se fa parte di una pipeline per ulteriori elaborazioni.
Inserendo il risultato della funzione .split (un array nativo) in un flusso e convertendolo in un elenco.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
Se è importante che il risultato sia memorizzato come da ArrayListtitolo dall'OP, è possibile utilizzare un Collectormetodo diverso :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
O usando l'API di analisi RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Nota che potresti comunque considerare di lasciare la listvariabile digitata come List<String>anziché ArrayList<String>. L'interfaccia generica per Listsembra ancora abbastanza simile ArrayListall'implementazione.
Di per sé, questi esempi di codice non sembrano aggiungere molto (tranne una maggiore digitazione), ma se hai intenzione di fare di più, come esemplifica questa risposta sulla conversione di una stringa in un elenco di lunghi , l'API di streaming è davvero potente consentendo per organizzare le operazioni una dopo l'altra.
Per completezza, sai.