JDK 8 이전 버전이라면 StringBuilder를 사용하는 해법이 정교하다. 이 책의 예제 코드에서 확인할 수 있다.
앞선 해법들은 문자열이 비교적 많을 때 적합한 반면, 문자열이 몇 안 되면 다음 두 해법도 괜찮다. 첫 번째 해법은 + 연산자를 사용한다.
String text = "My high school, " + LS +
"the Illinois Mathematics and Science Academy," + LS +
"showed me that anything is possible " + LS +
"and that you're never too young to think big.";
두 번째 해법은 String.format()을 사용한다.
String text = String.format("%s" + LS + "%s" + LS + "%s" + LS + "%s",
"My high school, ",
"the Illinois Mathematics and Science Academy,",
"showed me that anything is possible ",
"and that you're never too young to think big.");
TIP ≣ 여러 줄 문자열 내 각 줄은 어떻게 처리할까? JDK 11의 String.lines() 메서드를 사용하면 간단하다. 이 메서드는 주어진 문자열을 줄 구분자(\n, \r, \r\n 지원)로 분할해 Stream<String>으로 변환한다. String.split() 메서드를 사용해도 된다(JDK 1.4부터 사용 가능). 문자열이 너무 많으면 파일에 저장해 한 번에 하나씩 읽고 처리하는 방식(가령 getResourceAsStream() 메서드를 사용하는 등)이 좋다. StringWriter나 BufferedWriter.newLine()을 사용할 수도 있다.
외부 라이브러리 지원을 받으려면 아파치 커먼즈 랭의 StringUtils.join()과 구아바의 Joiner, 사용자 지정 표기(custom annotation)인 @Multiline을 활용한다.