더북(TheBook)

009 구분자로 여러 문자열 합치기

 

몇 가지 적당한 해법으로 문제를 풀어보겠다. 자바 8 이전에는 아래처럼 StringBuilder를 사용하면 편했다.

public static String joinByDelimiter(char delimiter, String... args) {
  StringBuilder result = new StringBuilder();

  int i = 0;
  for (i = 0; i < args.length - 1; i++) {
    result.append(args[i]).append(delimiter);
  }
  result.append(args[i]);

  return result.toString();
}

자바 8부터는 적어도 네 가지 해법으로 문제를 풀 수 있다. 그 중 하나가 StringJoiner 유틸리티 클래스를 이용하는 것이다. 이 클래스는 구분자(가령 콤마)로 분리된 문자 시퀀스를 생성한다.

선택적으로 접두사와 접미사도 지원한다(이 책에서는 다루지 않는다).

public static String joinByDelimiter(char delimiter, String... args) {
  StringJoiner joiner = new StringJoiner(String.valueOf(delimiter));

  for (String arg: args) {
    joiner.add(arg);
  }

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