String.lines()
Разбивает строку на строки по переводам строки и возвращает их потоком.
Доступно с: Java 11
Синтаксис
public Stream<String> lines()Возвращаемое значение
Stream<String>Поток строк без символов перевода строки.
Примеры
Подсчёт непустых строк текста:
void main() {
String text = "first\n\nsecond\r\nthird";
long count = text.lines().filter(line -> !line.isBlank()).count();
IO.println(count);
}Результат:
3Нумерация строк:
void main() {
String poem = """
roses are red
violets are blue""";
List<String> lines = poem.lines().toList();
for (int i = 0; i < lines.size(); i++) {
IO.println((i + 1) + ": " + lines.get(i));
}
}Результат:
1: roses are red
2: violets are blueПримечания
Понимает все виды переводов строки: \n, \r\n и \r. В отличие от split("\n"), не оставляет \r в конце строк из Windows-файлов.
См. также
- String.split() — Разбивает строку на массив частей по разделителю.
- Files.readAllLines() — Читает текстовый файл в список строк.
- Text block """ — Многострочный строковый литерал в тройных кавычках.
Вопросы и ответы по теме
В учебнике
- Текстовые блоки и форматирование — Многострочные текстовые блоки в Java, форматирование строк через formatted, String.format и printf, спецификаторы %s, %d, %f и ширина поля.