Si a Listest l'objectif final comme l'OP l'a indiqué, alors la réponse déjà acceptée est toujours la plus courte et la meilleure. Cependant, je veux fournir des alternatives utilisant Java 8 Streams , qui vous donneront plus d'avantages si elles font partie d'un pipeline pour un traitement ultérieur.
En encapsulant le résultat de la fonction .split (un tableau natif) dans un flux, puis en le convertissant en liste.
List<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toList());
S'il est important que le résultat soit stocké en tant ArrayListque selon le titre de l'OP, vous pouvez utiliser une Collectorméthode différente :
ArrayList<String> list =
Stream.of("a,b,c".split(","))
.collect(Collectors.toCollection(ArrayList<String>::new));
Ou en utilisant l'API d'analyse de RegEx:
ArrayList<String> list =
Pattern.compile(",")
.splitAsStream("a,b,c")
.collect(Collectors.toCollection(ArrayList<String>::new));
Notez que vous pouvez toujours envisager de laisser la listvariable tapée comme List<String>au lieu de ArrayList<String>. L'interface générique de Listsemble toujours assez similaire à laArrayList implémentation.
En eux-mêmes, ces exemples de code ne semblent pas en ajouter beaucoup (sauf plus de frappe), mais si vous prévoyez d'en faire plus, comme cette réponse sur la conversion d'une chaîne en une liste de Longs montre , l'API de streaming est vraiment puissante en permettant pour canaliser vos opérations les unes après les autres.
Pour le bien, vous savez, l'exhaustivité.