In meinem String kann ich eine beliebige Anzahl von Wörtern haben, die durch Kommas getrennt sind. Ich wollte, dass jedes Wort in eine ArrayList aufgenommen wird. Z.B:
String s = "a,b,c,d,e,.........";
In meinem String kann ich eine beliebige Anzahl von Wörtern haben, die durch Kommas getrennt sind. Ich wollte, dass jedes Wort in eine ArrayList aufgenommen wird. Z.B:
String s = "a,b,c,d,e,.........";
Antworten:
Versuchen Sie etwas wie
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Arrays.asList
DokumentationString.split
DokumentationArrayList(Collection)
KonstruktordokumentationDemo:
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]
Dieser Beitrag wurde bereits als ein Artikel neu geschrieben hier .
split
Arrays.toString()
, um es zu drucken, aber ja.
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("^\\[|]$", "");
Option 1 :
List<String> list = Arrays.asList("hello");
Option 2 :
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
Meiner Meinung nach ist Option1 besser, weil
asList
Methode erstellt ein ArrayList-Objekt und gibt es zurück.Bitte beachten Sie die Dokumentation hier
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
? Ich versuche, den ersten String eines String-Arrays zu erhalten und diesen String in charArray und diesen charArray in List <Character> zu
Wenn Sie importieren oder ein Array (vom Typ string) in Ihrem Code haben und es in eine Arrayliste (offcourse string) konvertieren müssen, ist die Verwendung von Sammlungen besser. so was:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Ok, ich werde hier auf die Antworten eingehen, da viele Leute, die hierher kommen, die Zeichenfolge durch ein Leerzeichen teilen möchten . So wird's gemacht:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Du könntest benutzen:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Sie sollten sich fragen, ob Sie die ArrayList überhaupt brauchen. Sehr oft filtern Sie die Liste nach zusätzlichen Kriterien, für die ein Stream perfekt ist. Vielleicht möchten Sie ein Set; Möglicherweise möchten Sie sie mithilfe eines anderen regulären Ausdrucks usw. filtern. Java 8 bietet übrigens diese sehr nützliche Erweiterung, die unter folgenden Bedingungen funktioniert CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Da Sie das Array überhaupt nicht benötigen, vermeiden Sie es, es folgendermaßen zu erstellen:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Wenn Sie einen String in eine ArrayList konvertieren möchten, versuchen Sie Folgendes :
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;
}
Aber ich sehe ein String-Array in Ihrem Beispiel. Wenn Sie also ein String-Array in ArrayList konvertieren möchten, verwenden Sie Folgendes :
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Einfacher zu verstehen ist wie folgt:
String s = "a,b,c,d,e";
String[] sArr = s.split(",");
List<String> sList = Arrays.asList(sArr);
Dies verwendet 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])
Nehmen wir eine Frage: Kehren Sie einen String um. Ich werde dies mit stream () tun. Collect (). Aber zuerst werde ich den String in eine ArrayList ändern.
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
*/
Wenn Sie Guave verwenden (und Sie sollten es sein, siehe effektives Java-Element Nr. 15 ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
kann das redundant sein. (wie es in Ihrem Beispiel ist;)