Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll.

f61

Mitglied
Java:
public class CountLetters {
   static int count_lower_case_letters(String s){
     int zaehler=0;
     int i=0;

        
        while (Character.isLowerCase(s.charAt(i))||(Character.isUpperCase(s.charAt(i)))){
            
          
        if (Character.isLowerCase(s.charAt(i))){
            zaehler++;
            
        
        }else if(Character.isUpperCase(s.charAt(i))){
            return zaehler;
        }
        i++;
    }
        return zaehler;
  
}
    public static void main(String[] args) {
        String s="bszhdufhisdhifheis";
       System.out.println(count_lower_case_letters(s));
    }
}



Das ist mein Ansatz, ich habe die Methoden islowerCase und isupperCase angewandt jedoch scheint irgendetwas falsch zu sein. Ich würde mich sehr über eure Hilfe freuen.
 
Genau! Oben in der while-Schleife. Dort stehen bereits zwei Bedingungen. Aber die Schleife bricht nicht ab, nachdem du das letzte Zeichen deines Strings gelesen hast. Also müsstest du den Schleifenkopf noch um eine UND-Verknüpfung ergänzen, denn die Schleife soll nur laufen, solange i < s.length() - 1 ist.
 
Genau! Oben in der while-Schleife. Dort stehen bereits zwei Bedingungen. Aber die Schleife bricht nicht ab, nachdem du das letzte Zeichen deines Strings gelesen hast. Also müsstest du den Schleifenkopf noch um eine UND-Verknüpfung ergänzen, denn die Schleife soll nur laufen, solange i < s.length() - 1 ist.
Vielen Dank. Jedoch besteht ein weiteres Problem und zwar bekomme ich folgende Meldungen:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException
at java.base/java.lang.String.charAt(String.java:1325)
at CountLetters.count_lower_case_letters(CountLetters.java:7)
at CountLetters.main(CountLetters.java:24)
Diese Meldungen erscheinen nur dann wenn ich nur kleine Buchstaben in meinem String habe, sobald ich einen großen Buchstaben dabei habe funktioniert das Programm.
 

Zurück
Oben