Study/java

[Java] String - repeat : 문자열 N번 반복 출력하기

 

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&#44; concat 사용하여 문자열 반복 결과
StringBuilder, concat 사용하여 문자열 반복 결과

반복문과 함께 StringBuilder를 사용하거나 String 클래스의 concat 메소드를 사용해서 문자열을 반복할 수 있습니다.

 

 

 

 

repeat 메소드로 문자열 반복

public static void main(String[] args) {
    String s = "Hello";
    String repeat = s.repeat(10);
    System.out.println("repeat = " + repeat);
}

String repeat 메소드 사용 결과
String 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&#44; StringBuilder 성능 비교
repeat, StringBuilder 성능 비교

실행 시간으로 비교했을 때 repeat 함수를 사용하는게 더 성능이 좋았습니다.