Frage Wie konvertiert man einen String in eine ArrayList?


In meinem String kann ich eine beliebige Anzahl von Wörtern haben, die durch Kommas getrennt sind. Ich wollte jedes Wort zu einer ArrayList hinzufügen. Z.B.:

String s = "a,b,c,d,e,.........";

75
2017-09-08 12:16


Ursprung


Antworten:


Versuchen Sie etwas wie

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

Demo:

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 als Artikel umgeschrieben Hier.


194
2017-09-08 12:18



 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());

26
2017-09-08 12:28



In Java 9, mit List#of


6
2017-10-07 14:12



Wenn Sie a konvertieren möchten Zeichenfolge in ein Anordnungsliste Versuche dies:

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, also wenn Sie ein konvertieren wollten Zeichenfolgenarray in Anordnungsliste benutze das:

public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
    ArrayList<String> stringList = new ArrayList<String>();
    for (String s : strArr) {
        stringList.add(s);
    }
    return stringList;
}

2
2017-09-08 12:30



Wenn Sie importieren oder ein Array (vom Typ string) in Ihrem Code haben und es in arraylist (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);

2
2017-12-04 12:24



Option 1:

List<String> list = Arrays.asList("hello");

Option 2:

List<String> list = new ArrayList<String>(Arrays.asList("hello"));

Meiner Meinung nach ist Option 1 besser, weil

  1. Wir können die Anzahl der zu erstellenden ArrayList-Objekte von 2 auf 1 reduzieren. asList Methode erstellt und gibt ein ArrayList-Objekt zurück.
  2. seine Leistung ist viel besser (aber es gibt eine Liste fester Größe zurück).

Bitte beachten Sie die Dokumentation Hier


2
2018-05-08 16:42



Ok, ich werde hier auf die Antworten eingehen, da viele der Leute, die hierher kommen, die Saite durch eine teilen wollen Leerzeichen. So wird es gemacht:

List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));

1
2018-06-26 11:04



Du könntest benutzen:

List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());

Sie sollten sich fragen, ob Sie die ArrayList wirklich benötigen. Sehr oft werden Sie die Liste anhand zusätzlicher Kriterien filtern, für die ein Stream perfekt ist. Vielleicht möchten Sie ein Set; Vielleicht möchten Sie sie mit einem anderen regulären Ausdruck usw. filtern. Java 8 stellt übrigens diese sehr nützliche Erweiterung zur Verfügung, die an jedem 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 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);

1
2017-10-07 13:55



Lass uns eine Frage stellen: Kehre einen String um. Ich mache das mit stream (). Collect (). Aber zuerst werde ich die Zeichenfolge 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
*/

0
2018-03-18 10:37