Взять из всех строк символ до точки и занести в лист

List<String> list = new ArrayList<>();
list.add("1. Текст1");
list.add("2. Текст2. продолжение текста");
list.add("3. Текст3. еще текст. и еще текст");

Нужно создать отдельный список List<Long> id, в котором будут номера по порядку с каждой строчки.

Можно ли сделать это через stream API? Вроде:

List<Long> id = list.stream.map(i -> i.split("\\.")

...вот дальше не пойму как...


Ответы (1 шт):

Автор решения: gil9red

Можно.

Попробуйте:

List<String> list = new ArrayList<>();
list.add("1. Текст1");
list.add("2. Текст2. продолжение текста");
list.add("3. Текст3. еще текст. и еще текст");

List<Long> ids = list
        .stream()
        .map(i -> Long.valueOf(i.split("\\.")[0]))
        .collect(Collectors.toList());
System.out.println(ids);
// [1, 2, 3]
→ Ссылка