Como dividir uma string separada por vírgulas?

Eu tenho uma String com um comprimento desconhecido que se parece com isso

"dog, cat, bear, elephant, ..., giraffe" 

Qual seria a melhor maneira de dividir essa string nas vírgulas para que cada palavra pudesse se tornar um elemento de uma ArrayList?

Por exemplo

 List strings = new ArrayList(); // Add the data here so strings.get(0) would be equal to "dog", // strings.get(1) would be equal to "cat" and so forth. 

   

Você poderia fazer isso:

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

Basicamente, o método .split() dividirá a string de acordo com o delimitador (neste caso) que você está passando e retornará uma matriz de strings.

No entanto, você parece estar depois de uma lista de seqüências de caracteres em vez de uma matriz, portanto, a matriz deve ser transformada em uma lista usando o utilitário Arrays.asList() . Apenas como um FYI você também pode fazer algo assim:

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

Mas geralmente é uma prática melhor programar uma interface em vez de uma implementação concreta real, por isso recomendo a 1ª opção.

Bem, você quer dividir , certo?

 String animals = "dog, cat, bear, elephant, giraffe"; String[] animalsArray = animals.split(","); 

Se você quiser adicionalmente se livrar de espaços em branco em torno de itens:

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

Um pequeno aprimoramento: as soluções acima não removerão espaços iniciais ou finais na cadeia real. É melhor chamar o trim antes de chamar o split. Em vez disso,

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

usar

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

Você pode dividi-lo e fazer uma matriz, em seguida, acessar como matriz

 String names = "prappo,prince"; String[] namesList = names.split(","); 

você pode acessar como

 String name1 = names[0]; String name2 = names[1]; 

ou usando loop

 for(String name : namesList){ System.out.println(name); } 

espero que isso ajude você.

Primeiro você pode dividir nomes como este

 String animals = "dog, cat, bear, elephant,giraffe"; String animals_list[] = animals.split(","); 

Acessar seus animais

 String animal1 = animals_list[0]; String animal2 = animals_list[1]; String animal3 = animals_list[2]; String animal4 = animals_list[3]; 

E também você deseja remover espaços em branco e vírgula em torno de nomes de animais

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

Para completar, usando a biblioteca Guava , você faria: Splitter.on(",").split(“dog,cat,fox”)

Outro exemplo:

 String animals = "dog,cat, bear,elephant , giraffe , zebra ,walrus"; List l = Lists.newArrayList(Splitter.on(",").trimResults().split(animals)); // -> [dog, cat, bear, elephant, giraffe, zebra, walrus] 

Splitter.split() retorna um Iterable, então se você precisar de uma List, Lists.newArrayList() -a em Lists.newArrayList() como acima. Caso contrário, basta ir com o Iterable, por exemplo:

 for (String animal : Splitter.on(",").trimResults().split(animals)) { // ... } 

Observe como trimResults() manipula todas as suas necessidades de aparagem sem ter que ajustar regexes para casos de canto , como String.split() com String.split() .

Se o seu projeto usa o Guava já, esta deve ser sua solução preferida. Veja a documentação do Splitter no Guava User Guide ou os javadocs para mais opções de configuração.

Pode tentar com isso funcionou para mim

  sg = sg.replaceAll(", $", ""); 

se não

 if (sg.endsWith(",")) { sg = sg.substring(0, sg.length() - 1); } 

Remova todos os espaços em branco e crie uma lista de tamanho fixo ou imutável (consulte documentos da API asList )

 final String str = "dog, cat, bear, elephant, ..., giraffe"; List list = Arrays.asList(str.replaceAll("\\s", "").split(",")); // result: [dog, cat, bear, elephant, ..., giraffe] 

É possível também usar replaceAll(\\s+", "") mas a eficiência máxima depende do caso de uso. (Veja @GurselKoca answer to Removendo espaço em branco de strings em Java )

Você pode usar algo assim:

 String animals = "dog, cat, bear, elephant, giraffe"; List animalList = Arrays.asList(animals.split(",")); 

Além disso, você includeia as libs:

 import java.util.ArrayList; import java.util.Arrays; import java.util.List; 

Usa isto :

  List splitString = (List) Arrays.asList(jobtype.split(",")); 

Existe uma function chamada replaceAll() que pode remover todos os espaços em branco, substituindo-os com o que você quiser. Como um exemplo

 String str=" 15. 9 4;16.0 1" String firstAndSecond[]=str.replaceAll("\\s","").split(";"); System.out.println("First:"+firstAndSecond[0]+", Second:"+firstAndSecond[1]); 

Darei à você:

 First:15.94, Second:16.01