Post

Java String repeat()

1. repeat()

repeat() 메서드는 이 문자열을 주어진 횟수만큼 연결한 값을 갖는 새로운 문자열을 반환한다.

2. repeat(int count) 중요점

  • count가 0이면, 빈 문자열이 반환된다.

  • count가 음수이면, IllegalArgumentException이 throw 된다.

  • count가 1이면, 이 문자열에 대한 참조가 반환된다.

  • 이 문자열이 비어 있으면 빈 문자열이 반환된다.

  • 이 유틸리티 메서드는 Java 11 릴리스의 String 클래스에 추가되었다.

  • 이 메서드는 내부적으로 Arrays.fill()System.arraycopy() 메서드를 호출하여 새 문자열을 생성한다.

3. 예제

1) 문자열 반복

  • 예제
1
2
3
4
5
6
7
public class Test {
    public static void main(String[] args) {
        String str = "Hello, World!";
        String result = str.repeat(3);
        System.out.println(result);
    }
}
  • 결과
1
Hello, World!Hello, World!Hello, World!

2) count가 음수인 경우

  • 예제
1
2
3
4
5
6
7
public class Test {
    public static void main(String[] args) {
        String str = "Hello, World!";
        String result = str.repeat(-1);
        System.out.println(result);
    }
}
  • 결과
1
2
Exception in thread "main" java.lang.IllegalArgumentException: count is negative: -1
	at java.base/java.lang.String.repeat(String.java:4417)

3) count가 0인 경우

  • 예제
1
  • 결과
1

4) 문자열이 비어 있는 경우

  • 예제
1
2
3
4
5
6
7
public class Test {
    public static void main(String[] args) {
        String str = "Hello, World!";
        String result = str.repeat(0);
        System.out.println(result);
    }
}
  • 결과
1

5) count운트가 1인 경우

  • 예제
1
2
3
4
5
6
7
public class Test {
    public static void main(String[] args) {
        String str = "Hello, World!";
        String result = str.repeat(1);
        System.out.println(result);
    }
}
  • 결과
1
Hello, World!

4. OutOfMemoryError

결과 문자열 길이가 너무 크면 OutOfMemoryError를 throw 한다.

  • 예제
1
2
3
4
5
6
7
public class Test {
    public static void main(String[] args) {
        String str = "Hello, World!";
        String result = str.repeat(Integer.MAX_VALUE);
        System.out.println(result);
    }
}
  • 결과
1
2
Exception in thread "main" java.lang.OutOfMemoryError: Required length exceeds implementation limit
	at java.base/java.lang.String.repeat(String.java:4427)

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.