줄 분할을 위한 String.lines()
정규식 오버헤드 없이 텍스트를 줄 스트림으로 분할하기 위해 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()처럼 한 번에 모두가 아닌 필요에 따라 생성됩니다.
범용 줄 끝
정규식 없이 , , 을 자동으로 처리합니다.
스트림 통합
filter, map, collect와 직접 사용하기 위한 Stream을 반환합니다.
이전 방식
split("\\n")
모던 방식
lines()
JDK 버전
11
난이도
초급
JDK 지원
줄 분할을 위한 String.lines()
사용 가능
JDK 11 (2018년 9월) 이후 사용 가능.
동작 원리
String.lines()는 , , 으로 분할된 줄의 Stream<String>을 반환합니다. 지연 평가되므로 대용량 문자열에 효율적입니다.
관련 문서