Java.Lang.StringIndexOutOfBoundsException 수정: 범위를 벗어난 문자열 인덱스

Sheeraz Gul 2023년10월12일
Java.Lang.StringIndexOutOfBoundsException 수정: 범위를 벗어난 문자열 인덱스

이 자습서는 Java의 스레드 "main" 예외 java.lang.StringIndexOutOfBoundsException: 범위를 벗어난 문자열 인덱스: 0 오류를 보여줍니다.

java.lang.StringIndexOutOfBoundsException: String index out of range 오류 수정

StringIndexOutofBoundsException은 인덱스가 음수이거나 문자열 길이보다 긴 문자열의 문자에 액세스할 때 발생하는 확인되지 않은 예외입니다. 이 예외는 문자열에 없는 문자에 액세스하려고 시도하는 charAt() 메서드를 사용할 때도 발생합니다.

StringIndexOutofBoundsException은 확인되지 않은 예외이므로 메서드 또는 생성자의 throw에 추가할 필요가 없습니다. try-catch 블록을 사용하여 처리할 수 있습니다. 다음은 이 예외가 발생할 수 있는 특정 시나리오입니다.

  1. String.charAt(int index)를 사용하는 경우 주어진 문자열 인덱스에서 문자를 반환합니다. 인덱스가 음수이거나 문자열 길이보다 크면 StringIndexOutofBoundsException.이 발생합니다.
  2. 주어진 인수로 문자열을 반환하는 String.valueOf(char[] data, int offset, int count)를 사용할 때. 인덱스가 음수이거나 offset + count가 배열 크기보다 큰 경우 StringIndexOutofBoundsException이 발생합니다.
  3. 문자 시퀀스를 반환하는 CharSequence.subSequence(int beginIndex, int endIndex)를 사용하는 경우. beginIndexendIndex보다 크거나 endIndex가 문자열의 길이보다 크면 StringIndexOutofBoundsException이 발생합니다.
  4. 주어진 문자열에서 하위 문자열을 반환하는 String.substring(int beginIndex)를 사용할 때. beginIndex가 음수이거나 문자열 길이보다 큰 경우 StringIndexOutofBoundsException을 발생시킵니다.
  5. 특정 범위 사이의 하위 문자열을 반환하는 String.substring(int beginIndex, int endIndex) 사용 시. 인덱스가 음수이거나 endIndexbeginIndex의 문자열 길이보다 크거나 endIndex보다 큰 경우 StringIndexOutofBoundsException이 발생합니다.

StringIndexOutofBoundsException에 대한 예를 살펴보겠습니다. 예를 참조하십시오:

package delftstack;

public class Example {
  public static void main(String[] arg) {
    String DemoStr = "delftstack";
    System.out.println(DemoStr.charAt(11));
  }
}

위의 코드는 인덱스 11에 문자가 없기 때문에 StringIndexOutofBoundsException을 발생시킵니다. 출력을 참조하십시오.

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 11
    at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
    at java.base/java.lang.String.charAt(String.java:1512)
    at delftstack.Example.main(Example.java:7)

StringIndexOutOfBoundsExceptiontry-catch 블록을 사용하여 처리할 수 있습니다. 해결 방법 보기:

package delftstack;

public class Example {
  public static void main(String[] arg) {
    String DemoStr = "delftstack";
    try {
      System.out.println(DemoStr.charAt(11));
    } catch (StringIndexOutOfBoundsException e) {
      System.out.println("Please insert a index under String length: " + DemoStr.length());
    }
  }
}

이제 위 코드의 출력은 다음과 같습니다.

Please insert a index under String length: 10
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Error