Heim >Java >javaLernprogramm >String-Konvertierungsausnahme in Java – java.lang.StringIndexOutOfBoundsException

String-Konvertierungsausnahme in Java – java.lang.StringIndexOutOfBoundsException

WBOY
WBOYOriginal
2023-06-24 20:38:474151Durchsuche

String-Konvertierungsausnahme in Java – java.lang.StringIndexOutOfBoundsException

Java ist eine beliebte Programmiersprache, in der die String-Verarbeitung ein sehr wichtiger Teil ist. Für die Konvertierung und den Betrieb von Strings stellt Java eine Fülle von APIs und Tools bereit, die es Entwicklern ermöglichen, Strings einfach zu verarbeiten. Bei der Verarbeitung von Zeichenfolgen tritt jedoch manchmal eine java.lang.StringIndexOutOfBoundsException-Ausnahme auf. In diesem Artikel werden die Ursachen und Lösungen für diese Ausnahme untersucht.

Was ist zunächst einmal java.lang.StringIndexOutOfBoundsException? Einfach ausgedrückt wird diese Ausnahme ausgelöst, wenn versucht wird, auf ein Zeichen zuzugreifen, das nicht in der Zeichenfolge vorhanden ist, oder wenn beim Zugriff auf die Zeichenfolge ein Parameter den Gültigkeitsbereich der Zeichenfolge überschreitet. Hier ist ein Beispiel:

String str = "Hello World!";
char ch = str.charAt(20);

Der obige Code versucht, auf das Zeichen an Position 20 in der Zeichenfolge zuzugreifen, aber die Länge der Zeichenfolge beträgt nur 12, sodass eine StringIndexOutOfBoundsException-Ausnahme ausgelöst wird. Diese Ausnahme wird normalerweise durch Entwicklercodefehler oder Eingabedatenfehler verursacht. In den folgenden Abschnitten werden wir die Ursachen und Lösungen für mehrere häufige Situationen untersuchen.

  1. String-Länge beim Aufruf der charAt()-Methode überschritten

Oben wurde ein Beispiel erwähnt, das eine der häufigsten Situationen darstellt. Die Methode charAt() löst diese Ausnahme aus, wenn wir versuchen, auf ein nicht vorhandenes Zeichen in der Zeichenfolge zuzugreifen. Bevor wir dieses Problem lösen, müssen wir sicherstellen, dass der Indexparameter die Zeichenfolgenlänge nicht überschreitet. Sie können Folgendes überprüfen:

if (index >= 0 && index < str.length()) {
   char ch = str.charAt(index);
}

Hier wird eine if-Anweisung verwendet, um sicherzustellen, dass der Index innerhalb des Zeichenfolgenbereichs liegt. Wenn der Index nicht im Bereich liegt, wird die Methode charAt() nicht ausgeführt. Dieser Ansatz kann das Auslösen von Ausnahmen vermeiden und die Robustheit des Codes verbessern.

  1. Der String-Längenbereich wird beim Aufruf der substring()-Methode überschritten

In Java wird die substring()-Methode verwendet, um den String innerhalb des angegebenen Bereichs abzufangen. Zum Beispiel:

String str = "Hello World!";
String substr = str.substring(3, 7);

Der obige Code fängt den Teilstring von Position 3 bis Position 7 des Strings ab und weist ihn der Substr-Variablen zu. Wenn der angegebene Bereich jedoch die Länge der Zeichenfolge überschreitet, wird eine StringIndexOutOfBoundsException ausgelöst. Ebenso müssen Sie bei Verwendung der substring()-Methode sicherstellen, dass die angegebene Startposition und Endposition innerhalb des String-Bereichs liegen:

if (start >= 0 && end <= str.length()) {
   String substr = str.substring(start, end);
}

Hier wird eine if-Anweisung verwendet, um sicherzustellen, dass die Startposition und Endposition innerhalb des Strings liegen Reichweite. Wenn es außerhalb des Bereichs liegt, wird die Methode substring() nicht ausgeführt. Dieser Ansatz kann auch das Auslösen von Ausnahmen vermeiden und die Robustheit des Codes verbessern.

  1. Die Zeichenfolge ist leer

Es gibt eine andere Möglichkeit, dass die Zeichenfolge leer ist. Beim Versuch, auf Zeichen in einer leeren Zeichenfolge zuzugreifen oder eine Teilzeichenfolge abzufangen, wird außerdem eine StringIndexOutOfBoundsException-Ausnahme ausgelöst. Wenn Sie eine leere Zeichenfolge verarbeiten, müssen Sie zunächst prüfen, ob die Zeichenfolge leer ist:

if (str != null && !str.isEmpty()) {
   //处理非空字符串
}

Die if-Anweisung wird hier verwendet, um sicherzustellen, dass die Zeichenfolge nicht leer ist. Wenn die Zeichenfolge leer ist, wird die entsprechende Operation nicht ausgeführt. Auch dieser Ansatz kann das Auslösen von Ausnahmen vermeiden und die Robustheit des Codes verbessern.

Zusammenfassung

In Java ist die Ausnahme java.lang.StringIndexOutOfBoundsException eine der sehr häufigsten Ausnahmen. Achten Sie bei der Verarbeitung von Zeichenfolgen unbedingt auf die Länge und den Bereich der Zeichenfolge, um Fehler beim Überschreiten des Bereichs zu vermeiden. Im Code können wir if-Anweisungen verwenden, um sicherzustellen, dass der Index und der Bereich innerhalb des zulässigen Bereichs liegen. Dieser Ansatz kann die Robustheit und Zuverlässigkeit des Codes verbessern und uns ein besseres Entwicklungserlebnis bescheren.

Das obige ist der detaillierte Inhalt vonString-Konvertierungsausnahme in Java – java.lang.StringIndexOutOfBoundsException. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn