Java kontrollieren ob Buchstabe groß oder klein ist?
Hi, bin in den ersten Wochen meines Studiums und im Labor ist die Aufgabe : PasswortQualität (z.B. wenn min. ein Großbuchstabe vorhanden ist, dann gibt es 10 Punkte)
Zur frage: Wie kann ich aus einem String rausfinden ob min. ein Großbuchstabe vorhanden ist?
Wollte jetzt nicht unbedingt frage=true wenn charAT(0-"länge des string") == A||B||C|| usw.
Danke :)
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]
Bin da in Java nicht so drin, vielleicht hilft ja das? https://www.vogella.com/tutorials/JavaRegularExpressions/article.html
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.
while (boolean != true){
if (char chr = isUpperCase(länge){
boolean = true; }
else {
länge--; }
}
so ca?
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.
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.
Wie genau macht man das? Sorry, wenn ich mich dumm anstelle aber stehe echt auf dem Schlauch...