Wie prüft man mit Java ob ein Kleinbuchstaben in einem String vorhanden ist?
5 Antworten
Mit diesem kleinen Codestück:
String input = "ABCDeFG";
boolean hasLowercaseCharacter= false;
for (char ch: input.toCharArray())
if ('a' <= ch && ch <= 'z') hasLowercaseCharacter=true;
Oder in einer Funktion:
for (char ch: input.toCharArray())
if ('a' <= ch && ch <= 'z') return true;
return false;
Ah, natürlich! Zu oft vergesse ich, dass chars ganz normal als integer verwendet werden können und vielen geht es bestimmt ähnlich. Danke für diese Antwort!
Es gibt die Methode `String+toUppercase()`, die einen String mit nur Großbuchstaben aus dem ursprünglichen erzeugt:
"aabbcc".toUpperCase() -> "AABBCC"
"FoObaR".toUpperCase() -> "FOOBAR"
Nun könntest Du also die uppercase variante mit der ursprünglichen vergleichen. Sind sie gleich, so waren keine Kleinbuchstaben enthalten.
String s = "STAR WARS";
if (s.equals(s.toUpperCase()) {
System.out.println("Möge die Macht mit Dir sein!");
}
Ist natürlich nicht wahnsinnig performant, da der gesamte String zweimal traversiert wird, aber dafür ist es simpel und sehr lesbar und einfach verständlich, da kann man diese marginale Performance-Einbuße sehr gut in Kauf nehmen.
Hallo,
man prüft ob der Bytewert der Zeichen im String zwischen 97 und 127 ("a" bis "z") liegt.
g
Harry
Ich habe in vielen Sprachen programmiert, Java war leider nicht dabei, daher die allgemein gehaltene Programmierung. DIe eleganteste Lösung scheint mit die Wandlung des Strings in Großbuchstaben und der anschließende Vergleich der beiden Strings zu sein, kostet aber die meiste Rechenzeit.
Sollte in JS, C, C++, etc. genauso sein. In Python gehts sogar so: 'a' <= derChar <= 'z' :D
Also ich finde meine am elegantesten :(
Aber hast schon recht, die ist nicht schlecht
Du kannst RegEx benutzen:
System.out.println("Blablabla toller Text".matches("^.*[a-z].*$")); //true
System.out.println("BLABLABLA NOCH EIN TEXT".matches("^.*[a-z].*$")); //false
Ein Array aus Chars anlegen in denen jeder kleine Buchstabe enthalten ist und dann prüfen ob der Inhalt des Chars == dem Inhalt des String sind.
Ich weiß nicht ob in Java die Betrachtung eines Strings behandelt werden kann wie ein char Array aber so sollte das ganze möglich sein
würde ich da bevorzugen, das versteht dann jeder