Przetworzenie stringa na listę.

0

Mam za zadanie wczytać kilka liczb i umieścić je w liście. Możliwe jest wczytanie tego w jednym stringu i przetworzenie każdej liczby na osobny element listy? Nie mam pomysłu jak się za to zabrać.

1

Można string split[0] Twoim bff:)

    String s = "123";
    String [] sa = s.split("");
    List<String> strings = 
     new ArrayList<String>(Arrays.asList(sa));
    System.out.println(strings); // -> [1, 2, 3]

[0] https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-

0

Zależy o co ci chodzi z tym przetwarzaniem każdej liczby. Jak wczytasz "12345" to masz tutaj np takie liczby jak "12" i "123", "45" itp

0
szweszwe napisał(a):

Zależy o co ci chodzi z tym przetwarzaniem każdej liczby. Jak wczytasz "12345" to masz tutaj np takie liczby jak "12" i "123", "45" itp

Rzeczywiście, ale wtedy może zrobić tak:

    String s = "12 123 1234";
    String [] sa = s.split(" ");
    List<String> strings = 
     new ArrayList<String>(Arrays.asList(sa));
    System.out.println(strings); // -> [12, 123, 1234]
0
lion137 napisał(a):

Rzeczywiście, ale wtedy może zrobić tak:

    String s = "12 123 1234";
    String [] sa = s.split(" ");
    List<String> strings = 
     new ArrayList<String>(Arrays.asList(sa));
    System.out.println(strings); // -> [12, 123, 1234]

Ogólnie to się zgadzam, ale niepotrzebne jest kopiowanie listy:

List<String> strings = 
 new ArrayList<String>(Arrays.asList(sa));

Arrays.asList() zwraca ArrayList, więc tworzysz dwa obiekty do tego samego.

0
wartek01 napisał(a):
List<String> strings = 
 new ArrayList<String>(Arrays.asList(sa));

Arrays.asList() zwraca ArrayList, więc tworzysz dwa obiekty do tego samego.

I tak i nie. new ArrayList tworzy java.util.ArrayList która jest "prawdziwą kolekcją", a Arrays.asList tworzy java.util.Arrays.ArrayList która jest tylko opakowaniem na tablicę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1