StringIndexOutOfBoundsException?

3 Antworten

https://www.tutorialspoint.com/understanding-array-indexoutofboundsexception-in-chash

Du hast einen Index eingeben, der größer ist, als das Array/der String.

Da du die Zeilen nicht mit auf dem Screenshot hast, gehe ich davon aus, dass der Fehler in der for-Schleife liegt.

Indexe fangen in Java bei 0 an, wodurch du bei s.charAt(i) einen Fehler auslöst.

Zum andern gibt .length() die Anzahl der Zeichen an.

Durch den Index bei 0 musst du i < s.length() nehmen.

Beispiel mit "Hello World":

Length gibt 11 zurück, aber der Index geht von 0 bis 10.

Die Schleife startet bei 1 und geht bis 11, wodurch bei 11 die Exception auftritt, da der Index bei 10 endet.


Shishigut 
Beitragsersteller
 23.01.2021, 15:27

dankeschön :D

0

Die Fehlermeldung bedeutet, dass du mit chatAt auf ein Element des Strings zugreifen willst, dass sich außerhalb der Grenzen des Strings befindet.

Das passiert, weil du i <= s.length() verwendest. Damit wird i vor dem Schleifenabbruch gleich der Länge des Strings und diese Position liegt außerhalb des Strings, da charAt bei 0 zu "zählen" beginnt.

Verwende daher i < s.length().


Shishigut 
Beitragsersteller
 23.01.2021, 15:26

danke :)

0
Von Experte Hairgott bestätigt
i < s.length()

Shishigut 
Beitragsersteller
 23.01.2021, 15:26

danke =)

0