Come dividere una stringa separata da virgola?

Ho una stringa con una lunghezza sconosciuta che assomiglia a qualcosa del genere

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

Quale sarebbe il modo ottimale per dividere questa stringa alle virgole in modo che ogni parola possa diventare un elemento di una lista di array?

Per esempio

 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. 

Potresti fare questo:

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

Fondamentalmente il metodo .split() dividerà la stringa in base al delimitatore (in questo caso) che stai passando e restituirà un array di stringhe.

Tuttavia, sembra che tu stia Arrays.asList() un elenco di stringhe piuttosto che un array, quindi l’array deve essere trasformato in un elenco utilizzando l’utilità Arrays.asList() . Proprio come una FYI potresti anche fare qualcosa del genere:

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

Ma di solito è meglio programmare su un’interfaccia piuttosto che su una reale implementazione concreta, quindi consiglierei la prima opzione.

Beh, vuoi dividere , vero?

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

Se vuoi eliminare anche gli spazi bianchi attorno agli oggetti:

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

Un piccolo miglioramento: le soluzioni precedenti non rimuoveranno gli spazi iniziali o finali nella stringa effettiva. È meglio chiamare il trim prima di chiamare split. Invece di questo,

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

uso

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

Puoi dividerlo e fare un array quindi accedere come array

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

puoi accedere come

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

o usando il ciclo

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

spero che ti possa aiutare.

Per prima cosa puoi dividere nomi come questo

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

per accedere ai tuoi animali

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

E anche tu vuoi rimuovere spazi bianchi e virgola attorno ai nomi degli animali

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

Per completezza, usando la libreria Guava , dovresti fare: Splitter.on(",").split(“dog,cat,fox”)

Un altro esempio:

 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() restituisce un Iterable, quindi se hai bisogno di un elenco, inseriscilo in Lists.newArrayList() come sopra. Altrimenti vai con l’Iterable, ad esempio:

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

Nota come trimResults() gestisce tutte le tue esigenze di rifilatura senza dover modificare le trimResults() per i casi d’angolo , come con String.split() .

Se il tuo progetto utilizza già Guava, questa dovrebbe essere la soluzione preferita. Vedere la documentazione di Splitter nella Guida dell’utente Guava o javadocs per ulteriori opzioni di configurazione.

Può provare con questo ha funzionato per me

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

o altro

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

Rimuovi tutti gli spazi bianchi e crea un elenco a dimensione fissa o immutabile (consulta i documenti dell’API asList )

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

È anche ansible utilizzare replaceAll(\\s+", "") ma la massima efficienza dipende dal caso d’uso. (Vedi risposta di @GurselKoca a Rimuovere spazi bianchi da stringhe in Java )

Puoi usare qualcosa come questo:

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

Inoltre, includi le librerie:

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

Usa questo :

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

C’è una funzione chiamata replaceAll() che può rimuovere tutti gli spazi bianchi sostituendoli con quello che vuoi. Come esempio

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

ti darò:

 First:15.94, Second:16.01