¿Cómo dividir una cadena separada por comas?

Tengo una cadena con una longitud desconocida que se parece a esto

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

¿Cuál sería la forma óptima de dividir esta cadena en las comas para que cada palabra se convierta en un elemento de una ArrayList?

Por ejemplo

 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. 

Podrías hacer esto:

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

Básicamente, el método .split() dividirá la cadena según el delimitador (en este caso) que está pasando y devolverá una matriz de cadenas.

Sin embargo, parece que Arrays.asList() una Lista de cadenas en lugar de una matriz, por lo que la matriz debe convertirse en una lista mediante la utilidad Arrays.asList() . Solo como un FYI, también podrías hacer algo como esto:

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

Pero generalmente es una mejor práctica progtwigr a una interfaz en lugar de a una implementación concreta concreta, por lo que recomendaría la primera opción.

Bueno, quieres dividir , ¿verdad?

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

Si desea, además, deshacerse de espacios en blanco alrededor de los artículos:

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

Una pequeña mejora: las soluciones anteriores no eliminarán los espacios iniciales o finales en la cadena real. Es mejor llamar trimado antes de llamar a split. En lugar de esto,

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

utilizar

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

Puede dividirlo y hacer una matriz, luego acceder como una matriz

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

puedes acceder como

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

o usando loop

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

Espero que te ayude .

Primero puedes dividir nombres como este

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

para acceder a tus animales

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

Y también quieres eliminar los espacios en blanco y la coma alrededor de los nombres de los animales

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

Para completar, usando la biblioteca de Guava , harías: Splitter.on(",").split(“dog,cat,fox”)

Otro ejemplo:

 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() devuelve un Iterable, por lo que si necesita una lista, envuélvala en Lists.newArrayList() como se Lists.newArrayList() anteriormente. De lo contrario, simplemente vaya con Iterable, por ejemplo:

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

Tenga en cuenta cómo trimResults() maneja todas sus necesidades de recorte sin tener que modificar las expresiones regulares para casos de esquina , como con String.split() .

Si su proyecto ya usa Guava, esta debería ser su solución preferida. Consulte la documentación de Splitter en Guava User Guide o javadocs para obtener más opciones de configuración.

Puedo probar con esto funcionó para mí

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

si no

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

Elimine todos los espacios en blanco y cree una lista de tamaño fijo o inmutable (consulte los documentos de la API asList )

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

También es posible usar replaceAll(\\s+", "") pero la eficiencia máxima depende del caso de uso. (Ver respuesta de @GurselKoca para Eliminar espacios en blanco de cadenas en Java )

Puedes usar algo como esto:

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

Además, incluirías las libs:

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

Utilizar esta :

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

Hay una función llamada replaceAll() que puede eliminar todos los espacios en blanco reemplazándolos con lo que quieras. Como ejemplo

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

Te regalaré:

 First:15.94, Second:16.01