Java kontrollieren ob Buchstabe groß oder klein ist?

4 Antworten

Ich würde da einen einfachen Regex machen: [A-Z] das fragt ab, ob ein Match gefunden wurde, das zwischen A-Z liegt oder bei klein Buchstaben: [a-z]

a) Wenn der String in Kleinbuchstaben dem String entspricht, gibt es keinen Großbuchstaben.

word.equals(word.toLowerCase())

b) Laufe durch die einzelnen Zeichen des Strings und schau nach dem ersten Buchstaben, der einem Großbuchstaben entspricht. Die Character-Klasse enthält eine passende Methode für die Prüfung (isUpperCase).

Eine Idee wäre einen Schleife über den string in der du dann die chars mit isUpperCase() prüfst. Hast du eins gefunden setzt du ein bool auf true und machst ein break.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent
Linow194 
Fragesteller
 20.10.2021, 13:51

while (boolean != true){

if (char chr = isUpperCase(länge){

boolean = true; }

else {

länge--; }

}

so ca?

0
regex9  20.10.2021, 13:57
@Linow194
char[] letters = word.toCharArray();
boolean hasUpperCaseLetter = false;

for (int i = 0; i < letters.length; ++i) {
  if (Character.isUpperCase(letters[i])) {
    hasUpperCaseLetter = true;
    break;
  }
}    
2
Schachpapa  20.10.2021, 14:05
@Linow194

Nö, eher so wie regex9 es zeigt.

Bei deiner Lösung gibt es mehrere Probleme:

boolean ist ein Datentyp, solltest du nicht als Variablennamen nehmen

chr = isUpperCase(index) funktioniert nicht, isUpperCase(chr) liefert einen Wahrheitswert. isUpperCase hat als Argument das zu prüfende Zeichen.

Dein Pseudocode läuft mit länge ins minus, wenn es vorher keinen Großbuchstaben findet, das müsstest du in der while-Bedingung mit abfangen.

2

Ohne Ausprobieren:

s.equals(s.toLowerCase())

liefert true, wenn keine Großbuchstaben drin sind (die man hätte in lowerCase wandeln können).

Ansonsten buchstabenweise durchgehen und ('A'<=c && c<='Z') prüfen, ähnl. wie whgoffline vorschlägt. In einer Anfängerveranstaltung ist das vermutlich gemeint.