String.indent()와 transform()
텍스트 들여쓰기와 문자열 변환을 유창하게 체이닝합니다.
코드 비교
✕ Java 8
String[] lines = text.split("\n");
StringBuilder sb = new StringBuilder();
for (String line : lines) {
sb.append(" ").append(line)
.append("\n");
}
String indented = sb.toString();
✓ Java 12+
String indented = text.indent(4);
String result = text
.transform(String::strip)
.transform(s -> s.replace(" ", "-"));
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
내장됨
들여쓰기는 일반적인 작업입니다 — 이제 한 번의 호출로 가능합니다.
체이닝 가능
transform()은 문자열에서 유창한 파이프라인을 가능하게 합니다.
깔끔한 코드
수동 줄 분할과 StringBuilder 루프가 없습니다.
이전 방식
수동 들여쓰기
모던 방식
indent() / transform()
JDK 버전
12
난이도
초급
JDK 지원
String.indent()와 transform()
사용 가능
JDK 12 (2019년 3월) 이후 널리 사용 가능
동작 원리
indent(n)은 각 줄에 n 칸의 공백을 추가합니다. transform(fn)은 임의의 함수를 적용하여 유창한 문자열 파이프라인을 가능하게 합니다.
관련 문서