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ć.
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-
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
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]
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.
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ę.