Nella mia stringa, posso avere un numero arbitrario di parole separate da virgole. Volevo che ogni parola fosse aggiunta in un ArrayList. Per esempio:
String s = "a,b,c,d,e,.........";
Nella mia stringa, posso avere un numero arbitrario di parole separate da virgole. Volevo che ogni parola fosse aggiunta in un ArrayList. Per esempio:
String s = "a,b,c,d,e,.........";
Risposte:
Prova qualcosa di simile
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Arrays.asList
documentazioneString.split
documentazioneArrayList(Collection)
documentazione del costruttoreDemo:
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]
Questo post è stato riscritto come articolo qui .
split
suo dopo: P
Arrays.toString()
per stamparlo, ma sì.
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());
replace = s1.replaceAll("^\\[|]$", "");
Opzione 1 :
List<String> list = Arrays.asList("hello");
Opzione 2 :
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
A mio parere, l'opzione 1 è migliore perché
asList
metodo crea e restituisce un oggetto ArrayList.Fare riferimento alla documentazione qui
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
sto cercando di ottenere la prima stringa di un array di stringhe e di convertire quella stringa in charArray e quel charArray in List <Character>
In Java 9, l'utilizzo di List#of
, che è un metodo di fabbrica statico elenco immutabile, diventa più semplice.
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
può essere aggiunto per ulteriore cura
Se stai importando o hai un array (di tipo stringa) nel tuo codice e devi convertirlo in arraylist (stringa fuori corso), l'uso delle collezioni è migliore. come questo:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Ok, estenderò le risposte qui poiché molte persone che vengono qui vogliono dividere la stringa con uno spazio bianco . Ecco come si fa:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Potresti usare:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Dovresti chiederti se hai davvero bisogno di ArrayList in primo luogo. Molto spesso, filtrerai l'elenco in base a criteri aggiuntivi, per i quali uno Stream è perfetto. Potresti volere un set; potresti volerli filtrare per mezzo di un'altra espressione regolare, ecc. Java 8 fornisce questa estensione molto utile, tra l'altro, che funzionerà su qualsiasi CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Poiché non hai affatto bisogno dell'array, evita di crearlo in questo modo:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Se vuoi convertire una stringa in un ArrayList prova questo:
public ArrayList<Character> convertStringToArraylist(String str) {
ArrayList<Character> charList = new ArrayList<Character>();
for(int i = 0; i<str.length();i++){
charList.add(str.charAt(i));
}
return charList;
}
Ma vedo un array di stringhe nel tuo esempio, quindi se vuoi convertire un array di stringhe in ArrayList usa questo:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Questo sta usando Gson in Kotlin
val listString = "[uno,dos,tres,cuatro,cinco]"
val gson = Gson()
val lista = gson.fromJson(listString , Array<String>::class.java).toList()
Log.e("GSON", lista[0])
Facciamo una domanda: inverti una stringa. Lo farò usando stream (). Collect (). Ma prima cambierò la stringa in un ArrayList.
public class StringReverse1 {
public static void main(String[] args) {
String a = "Gini Gina Proti";
List<String> list = new ArrayList<String>(Arrays.asList(a.split("")));
list.stream()
.collect(Collectors.toCollection( LinkedList :: new ))
.descendingIterator()
.forEachRemaining(System.out::println);
}}
/*
The output :
i
t
o
r
P
a
n
i
G
i
n
i
G
*/
Se stai usando guava (e dovresti esserlo, vedi l' effettivo elemento java # 15 ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
potrebbe essere ridondante a seconda di come viene utilizzato. (come nel tuo esempio;)