자바 8 함수형 스타일로 같은 결과를 얻으려면 다음과 같이 한다.
private static final Pattern PATTERN = Pattern.compile(" +");
...
public static String reverseWords(String str) {
return PATTERN.splitAsStream(str)
.map(w -> new StringBuilder(w).reverse())
.collect(Collectors.joining(" "));
}
두 메서드는 각 단어 내 글자를 역순으로 뒤집은 문자열을 반환하지만 단어 자체의 순서는 그대로다. 이제 각 단어의 글자뿐 아니라 단어 순서도 뒤집는 메서드를 알아보자. StringBuilder.reverse() 메서드를 이용하면 매우 간단하다.
public String reverse(String str) {
return new StringBuilder(str).reverse().toString();
}
Info ≣ 외부 라이브러리 지원을 받으려면 아파치 커먼즈 랭(Apache Commons Lang)의 StringUtils.reverse()를 활용한다.