Strings Начинающий

Использование String.lines() для разбиения текста на поток строк без издержек регулярных выражений.

✕ Java 8
String text = "one\ntwo\nthree";
String[] lines = text.split("\n");
for (String line : lines) {
    System.out.println(line);
}
✓ Java 11+
String text = "one\ntwo\nthree";
text.lines().forEach(IO::println);
Заметили проблему в этом коде? Сообщите нам.

Ленивый поток

Строки генерируются по запросу, а не все сразу, как в split().

🔧

Универсальные разделители строк

Автоматически обрабатывает \n, \r и \r\n без регулярных выражений.

🔗

Интеграция со Stream

Возвращает поток для прямого использования с filter, map, collect.

Старый подход
split("\\n")
Современный подход
lines()
Начиная с JDK
11
Сложность
Начинающий
String.lines() для разбиения на строки
Доступно

Доступно с JDK 11 (сентябрь 2018).

String.lines() возвращает Stream<String> строк, разбитых по \n, \r или \r\n. Это ленивее и эффективнее, чем split(), избегает компиляции регулярных выражений и естественно интегрируется в Stream API для дальнейшей обработки.