Я добавляю снимок экрана для дополнительной информации. Я новичок в Java8, простите меня, если я задаю плохой вопрос. Когда я проводил исследование для ввода значений, разделенных пробелами, я получил это утверждение. Я понимаю, что приведенный ниже оператор принимает значение 1 2 3
и возвращает значение [1, 2, 3]
в виде списка.
Пожалуйста, поправьте меня, если я ошибаюсь,
Я сомневаюсь, когда я ввожу 1 2 3
, который является строкой. Итак, этот поток сначала разделяет значение с пробелом, а затем повторяет разделенное значение? или это 1-й разбор значения, позже сохранение значения в списке, позднее разделение значения с пробелом и удаление пробела и замена на ,
. Мне очень любопытно, как именно работает приведенный ниже оператор.
List<Integer> a = Stream.of(bufferedReader.readLine().replaceAll("\\s$", "").split(" "))
.map(Integer::parseInt)
.collect(toList());
[1]: https://i.stack.imgur.com/nlXxd.jpg