HOWTO · Java
Java.Lang.StringIndexOutOfBoundsException behoben: String-Index außerhalb des zulässigen Bereichs
Dieses Tutorial demonstriert die Ausnahme im Hauptthread java.lang.StringIndexOutOfBoundsException: string index out of range: 0 error in Java.
Dieses Tutorial demonstriert den Fehler Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 in Java.
Beheben Sie den Fehler java.lang.StringIndexOutOfBoundsException: String index out of range
Die StringIndexOutofBoundsException ist eine ungeprüfte Ausnahme, die auftritt, wenn auf das Zeichen eines Strings zugegriffen wird, dessen Index entweder negativ oder größer als die String-Länge ist. Diese Ausnahme wird auch ausgelöst, wenn wir die Methode charAt() verwenden, die versucht, auf ein Zeichen zuzugreifen, das nicht im String enthalten ist.
Da es sich bei StringIndexOutofBoundsException um eine ungeprüfte Ausnahme handelt, muss sie nicht zum Auslösen einer Methode oder eines Konstruktors hinzugefügt werden. Wir können es mit dem try-catch-Block handhaben. Hier sind die spezifischen Szenarien, in denen diese Ausnahme auftreten kann:
- Bei Verwendung von
String.charAt(int index), die ein Zeichen an einem bestimmten String-Index zurückgibt. Wenn der Index negativ oder größer als die Länge des Strings ist, wird dieStringIndexOutofBoundsException.ausgelöst. - Bei Verwendung von
String.valueOf(char[] data, int offset, int count), das einen String mit gegebenen Argumenten zurückgibt. Es löst dieStringIndexOutofBoundsExceptionaus, wenn irgendein Index negativ ist oderoffset + countgrößer als die Größe des Arrays ist. - Bei Verwendung von
CharSequence.subSequence(int beginIndex, int endIndex), die eine Zeichenfolge zurückgibt. Es löst dieStringIndexOutofBoundsExceptionaus, wennbeginIndexgrößer alsendIndexoderendIndexgrößer als die Länge des Strings ist. - Bei Verwendung von
String.substring(int beginIndex), das einen Teilstring aus dem angegebenen String zurückgibt. Es löst dieStringIndexOutofBoundsExceptionaus, wennbeginIndexnegativ oder größer als die Länge des Strings ist. - Bei Verwendung von
String.substring(int beginIndex, int endIndex), das einen Teilstring zwischen einem bestimmten Bereich zurückgibt. Es löst dieStringIndexOutofBoundsExceptionaus, wenn irgendein Index negativ ist oderendIndexgrößer ist als die Länge von String vonbeginIndexgrößer alsendIndexist.
Versuchen wir ein Beispiel für StringIndexOutofBoundsException. Siehe Beispiel:
package delftstack;
public class Example {
public static void main(String[] arg) {
String DemoStr = "delftstack";
System.out.println(DemoStr.charAt(11));
}
}
Der obige Code löst StringIndexOutofBoundsException aus, da an Index 11 kein Zeichen vorhanden ist. Siehe Ausgabe:
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)
Die StringIndexOutOfBoundsException kann mit try-catch-Blöcken behandelt werden. Siehe Lösung:
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());
}
}
}
Nun ist die Ausgabe für den obigen Code:
Please insert a index under String length: 10