HOWTO · Java
Java.Lang.StringIndexOutOfBoundsException 수정: 범위를 벗어난 문자열 인덱스
이 튜토리얼은 Java에서 스레드 메인 java.lang.StringIndexOutOfBoundsException: string index out of range: 0 오류의 예외를 보여줍니다.
이 자습서는 Java의 스레드 "main" 예외 java.lang.StringIndexOutOfBoundsException: 범위를 벗어난 문자열 인덱스: 0 오류를 보여줍니다.
java.lang.StringIndexOutOfBoundsException: String index out of range 오류 수정
StringIndexOutofBoundsException은 인덱스가 음수이거나 문자열 길이보다 긴 문자열의 문자에 액세스할 때 발생하는 확인되지 않은 예외입니다. 이 예외는 문자열에 없는 문자에 액세스하려고 시도하는 charAt() 메서드를 사용할 때도 발생합니다.
StringIndexOutofBoundsException은 확인되지 않은 예외이므로 메서드 또는 생성자의 throw에 추가할 필요가 없습니다. try-catch 블록을 사용하여 처리할 수 있습니다. 다음은 이 예외가 발생할 수 있는 특정 시나리오입니다.
String.charAt(int index)를 사용하는 경우 주어진 문자열 인덱스에서 문자를 반환합니다. 인덱스가 음수이거나 문자열 길이보다 크면StringIndexOutofBoundsException.이 발생합니다.- 주어진 인수로 문자열을 반환하는
String.valueOf(char[] data, int offset, int count)를 사용할 때. 인덱스가 음수이거나offset + count가 배열 크기보다 큰 경우StringIndexOutofBoundsException이 발생합니다. - 문자 시퀀스를 반환하는
CharSequence.subSequence(int beginIndex, int endIndex)를 사용하는 경우.beginIndex가endIndex보다 크거나endIndex가 문자열의 길이보다 크면StringIndexOutofBoundsException이 발생합니다. - 주어진 문자열에서 하위 문자열을 반환하는
String.substring(int beginIndex)를 사용할 때.beginIndex가 음수이거나 문자열 길이보다 큰 경우StringIndexOutofBoundsException을 발생시킵니다. - 특정 범위 사이의 하위 문자열을 반환하는
String.substring(int beginIndex, int endIndex)사용 시. 인덱스가 음수이거나endIndex가beginIndex의 문자열 길이보다 크거나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)
StringIndexOutOfBoundsException은 try-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