String 클래스의 repeat 메소드는 Java 11버전부터 추가된, 문자열을 반복하는 메소드입니다.
repeat 메소드 없이 문자열 반복
repeat 메소드 없이 문자열을 반복하고자 할 때는 다음과 같이 사용하면 됩니다.
public static void main(String[] args) {
String s = "Hello";
// StringBuilder 사용
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; i++) {
sb.append(s);
}
System.out.println("StringBuilder = " + sb);
// concat 메소드 사용
String repeatString = "";
for (int i = 0; i < 10; i++) {
repeatString = repeatString.concat(s);
}
System.out.println("concat = " + repeatString);
}
반복문과 함께 StringBuilder를 사용하거나 String 클래스의 concat 메소드를 사용해서 문자열을 반복할 수 있습니다.
repeat 메소드로 문자열 반복
public static void main(String[] args) {
String s = "Hello";
String repeat = s.repeat(10);
System.out.println("repeat = " + repeat);
}
repeat 메소드를 통해 반복문 없이 메소드만으로 문자열을 반복할 수 있게 되었습니다.
성능 비교
StringBuilder와 repeat 함수의 성능을 비교해보겠습니다.
public static void main(String[] args) {
for (int index = 0; index < 5; index++) {
System.out.println("=============================");
// repeat 함수
long startTime = System.nanoTime();
String s = "x".repeat(1000);
long endTime = System.nanoTime();
System.out.println("Repeat method: " + (endTime - startTime) + " ns");
// StringBuilder
startTime = System.nanoTime();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append("x");
}
String result = sb.toString();
endTime = System.nanoTime();
System.out.println("StringBuilder: " + (endTime - startTime) + " ns");
}
System.out.println("=============================");
}
실행 시간으로 비교했을 때 repeat 함수를 사용하는게 더 성능이 좋았습니다.