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());