Erstes Arbeiten mit Methoden.

Alen123

Mitglied
Hallo, ich versuche grade das erste mal mit Methoden zu arbeiten. Die erstellte Methode soll die Anzahl der a's im String ausgeben, beim Ausführen krieg ich jedoch die Fehlermeldung (Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4) nach der ersten Benutzereingabe. Ich weiß also nicht wo mein Fehler ist, also schonmal danke für die Hilfe!!!
Java:
import java.util.Scanner;

public class III {
    public static void main (String[] args) {
        
        Scanner alen = new Scanner(System.in);
        
        System.out.println("Hey du, gib mal ein Wort ein");
        
        String satz = alen.next();
        
        System.out.println("Dein Wort/Satz beinhaltet "+a(satz)+" a's");
        
    }
    static int a (String s) {
    int l = s.length();
    int as = 0;
    
    do {
        char result = s.charAt(l);
        String b = Character.toString(result);
        if (b.equals("a")) {
        as++; }
        
        l = l-1;
    }
    while (l >= 0);
        
    return as;
    }
}
 
Der Index läuft bei Java in der Regel von 0 bis länge-1, also ein String "abc" hat a an 0, b an 1 und c an 2.

Du versuchst aber auf das Element mit index=länge des Strings zuzugreifen. Das gibt es aber nicht.
 
Die Antwort hat Dir eigentlich @KonradN schon gegeben. In Zeile 20 greifst Du auf ein Zeichen an Index l zu. Du musst also dafür sorgen, dass l nicht größer als s.length() - 1 und nicht kleiner als 0 ist. Letzteres hast Du durch die Schleifenbedingung sichergestellt und ersteres erreichst Du natürlich, in dem Du l einfach s.length() - 1 zuweist.
 

Zurück
Oben