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

String-Konvertierungsausnahme in Java – java.lang.StringIndexOutOfBoundsException

Jun 24, 2023 pm 08:38 PM
java字符串 转换异常 索引越界

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);
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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()) {
   //处理非空字符串
}
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Was ist der Unterschied zwischen Speicherlecks in Java -Programmen auf Arm- und X86 -Architektur -CPUs? Was ist der Unterschied zwischen Speicherlecks in Java -Programmen auf Arm- und X86 -Architektur -CPUs? Apr 19, 2025 pm 11:18 PM

Analyse des Gedächtnis -Leck -Phänomens von Java -Programmen zu verschiedenen Architektur -CPUs. In diesem Artikel wird ein Fall erläutert, in dem ein Java -Programm unterschiedliche Gedächtnisverhalten auf ARM- und X86 -Architektur -CPUs aufweist ...

Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Apr 19, 2025 pm 11:36 PM

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...

See all articles