String index out of range Fehlermeldung

IFapToCode

Mitglied
Hey, ich wollte als Übung ein kleines Programm in Java schreiben, bei dem man eine beliebige Zeichenfolge eingibt, und dann geprüft wird, wie oft ein e, a, i, o und u darin vorkommt. Allerdings bekomme ich eine Fehlermeldung bei der ich nicht verstehe, was damit gemeint ist.
(Wenn ich in Zeile 17 statt dem i eine Zahl eingebe funktioniert es)

Java:
package uebung07;

import javax.swing.JOptionPane;

public class Vokalzaehler {
    public static void main(String[] args) {
        String eingabe = JOptionPane.showInputDialog("");
        eingabe = eingabe.toLowerCase();
        int i = 1;
        int einLen = eingabe.length();
        int zaehlerE = 0;
        int zaehlerA = 0;
        int zaehlerI = 0;
        int zaehlerO = 0;
        int zaehlerU = 0;
        while (i <= einLen) {
            switch (eingabe.charAt(i)) {
            case 'e': zaehlerE++;
            case 'a': zaehlerA++;
            case 'i': zaehlerI++;
            case 'o': zaehlerO++;
            case 'u': zaehlerU++;
            }
            i++;
        }
        System.out.println("e: " + zaehlerE);
        System.out.println("e: " + zaehlerA);
        System.out.println("e: " + zaehlerI);
        System.out.println("e: " + zaehlerO);
        System.out.println("e: " + zaehlerU);
    }
}
Fehlermeldung:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9
at java.lang.String.charAt(Unknown Source)
at uebung07.Vokalzaehler.main(Vokalzaehler.java:17)
 
Probier mal so:
Code:
while (i < einLen) {

Indizes gehen bei Java (Strings, arrays etc.) immer von 0 ... länge-1

Edit: Ach so, und i muss natürlich bei 0 beginnen.
 

Neue Themen


Zurück
Oben