142 votes

Comment convertir un String en ArrayList ?

Dans ma chaîne, je peux avoir un nombre arbitraire de mots séparés par des virgules. Je veux que chaque mot soit ajouté dans un ArrayList. Par exemple :

String s = "a,b,c,d,e,.........";

326voto

aioobe Points 158466

Essayez quelque chose comme

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

Démonstration :

String s = "lorem,ipsum,dolor,sit,amet";

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

System.out.println(myList);  // prints [lorem, ipsum, dolor, sit, amet]

Ce message a été réécrit sous forme d'article. aquí .

36voto

Sameek Mishra Points 1318
 String s1="[a,b,c,d]";
 String replace = s1.replace("[","");
 System.out.println(replace);
 String replace1 = replace.replace("]","");
 System.out.println(replace1);
 List<String> myList = new ArrayList<String>(Arrays.asList(replace1.split(",")));
 System.out.println(myList.toString());

12 votes

Si vous devez couper des supports, vous pouvez le faire en une seule étape avec replace = s1.replaceAll("^\\[|]$", "");

0 votes

J'ai utilisé cette réponse, mais mon utilisateur utilise parfois "," et autres ", " comme séparateurs, j'ai donc ajouté un .replaceAll(", ", ",") antes de split función.

15voto

jWeaver Points 4191

En Java 9, l'utilisation de List#of qui est une liste immuable de méthodes d'usine statiques, devient plus simple.

 String s = "a,b,c,d,e,.........";
 List<String> lst = List.of(s.split(","));

0 votes

s.split("\\s*,\\s*") peut être ajouté pour un soin supplémentaire

11voto

Andy Points 336

Option1 :

List<String> list = Arrays.asList("hello");

Option 2 :

List<String> list = new ArrayList<String>(Arrays.asList("hello"));

À mon avis, l'option 1 est meilleure parce que

  1. nous pouvons réduire le nombre d'objets ArrayList créés de 2 à 1. asList crée et renvoie un objet ArrayList.
  2. ses performances sont bien meilleures (mais il renvoie une liste de taille fixe).

Veuillez vous référer à la documentation aquí

7voto

Abay Points 11

Plus facile à comprendre, c'est comme ça :

String s = "a,b,c,d,e";
String[] sArr = s.split(",");
List<String> sList = Arrays.asList(sArr);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X