더북(TheBook)

020 같은 문자열 n번 이어 붙이기

 

JDK 11 이전 버전에서는 StringBuilder로 다음과 같이 간단히 해결할 수 있다.

public static String concatRepeat(String str, int n) {
  StringBuilder sb = new StringBuilder(str.length() * n);

  for (int i = 1; i <= n; i++) {
    sb.append(str);
  }

  return sb.toString();
}

JDK 11부터는 String.repeat(int count) 메서드를 사용한다. 이 메서드는 문자열을 count번만큼 이어 붙인 문자열을 반환한다. 내부적으로 System.arraycopy()를 사용하므로 매우 빠르다.

String result = "hello".repeat(5);

다양한 상황에 적합한 그 밖에 여러 해법을 나열해보겠다.

다음은 String.join() 기반 해법이다.

String result = String.join("", Collections.nCopies(5, TEXT));

다음은 Stream.generate() 기반 해법이다.

String result = Stream.generate(() -> TEXT)
  .limit(5)
  .collect(joining());
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.