236 votes

fractionner une chaîne séparée par des virgules

J'ai une chaîne d'une longueur inconnue qui ressemble à ceci

dog, cat, bear, elephant,… girafe

Quel serait le moyen optimal de diviser cette chaîne par des virgules pour que chaque mot puisse devenir un élément d'un ArrayList?

Par exemple

   ArrayList<String> strings = new ArrayList<Strings>();
  // Add the Data here so string.get(0) would be equal to "dog",
  // strings.get(1) would be equal to "cat" and so forth.
 

391voto

npinti Points 26029

Vous pouvez faire ceci:

String str = "...";
List<String> elephantList = Arrays.asList(str.split(","));

Fondamentalement, l' .split() méthode split de la chaîne suivant (dans ce cas) vous êtes de passage et retourne un tableau de chaînes de caractères.

Cependant, vous semblez être la suite d'une Liste de Chaînes de caractères plutôt qu'un tableau, le tableau doit être transformé en une liste à l'aide de l' Arrays.asList() utilitaire. Juste comme pour info vous pouvez aussi faire quelque chose comme ça:

String str = "...";
ArrayList<String> elephantList = Arrays.asList(str.split(","));

Mais il est souvent plus pratique à programmer une interface plutôt qu'à une réelle mise en œuvre concrète, donc je vous conseille de la 1ère option.

171voto

Tomasz Nurkiewicz Points 140462

Eh bien, vous voulez vous séparer , non?

 String animals = "dog, cat, bear, elephant, giraffe";

String[] animalsArray = animals.split(",");
 

Si vous souhaitez également supprimer les espaces entre les éléments:

 String[] animalsArray = animals.split("\\s*,\\s*");
 

20voto

user872858 Points 141

Une petite amélioration: les solutions ci-dessus ne suppriment pas les espaces de début ou de fin dans la chaîne réelle. Il est préférable d'appeler trim avant d'appeler split. Au lieu de cela,

  String[] animalsArray = animals.split("\\s*,\\s*");
 

utilisation

  String[] animalsArray = animals.trim().split("\\s*,\\s*");
 

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