더북(TheBook)

자바 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()를 활용한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.