String.lines() do podziału na wiersze
Używaj String.lines() do dzielenia tekstu na strumień wierszy bez narzutu regex.
Porównanie kodu
✕ 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);
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Leniwe strumieniowanie
Wiersze są produkowane na żądanie, nie wszystkie naraz jak split().
Uniwersalne zakończenia linii
Obsługuje \n, \r i \r\n automatycznie bez regex.
Integracja ze strumieniami
Zwraca Stream do bezpośredniego użycia z filter, map, collect.
Stare podejście
split("\\n")
Nowoczesne podejście
lines()
Od JDK
11
Poziom trudności
Początkujący
Wsparcie JDK
String.lines() do podziału na wiersze
Dostępne
Dostępne od JDK 11 (wrzesień 2018)
Jak to działa
String.lines() zwraca Stream<String> wierszy podzielonych przez \n, \r lub \r\n. Jest leniwszy i bardziej efektywny niż split(), unika kompilacji regex i integruje się naturalnie z Stream API do dalszego przetwarzania.
Powiązana dokumentacja
Dowód