# Groß- und Kleinbuchstaben in String



## Fragender (10. Nov 2008)

Hallo an alle.

Ich habe die Aufgabe ein Programm zu erstellen, in dem jemandem die Güte seines Passworts angezeigt wird.
Ich habe soweit alles bis auf die Groß- und Kleinschreibung. Kann mir jemand sagen wie man einen String darauf überprüfen lassen kann?

Danke


----------



## SlaterB (10. Nov 2008)

if (string.contains("Groß- und Kleinschreibung")) {
// gefunden
}

wenn du was anderes darunter verstehst, dann beschreibe doch genauer, worum es dir geht


----------



## Fragender (10. Nov 2008)

ich meine, dass wenn der String z.B. "Beispiel" ist, dass in diesem fall

1 Großbuchstabe und
7 Kleinbuchstaben

angezeigt werden


----------



## SlaterB (10. Nov 2008)

für solche Zählungen würde ich den String char für char durchlaufen und Hilfsmethoden wie
       Character.isUpperCase(char)
verwenden oder ähnliches, man kann ja auch einzeln alle möglichen chars/ Bereiche abfragen


----------



## Fragender (10. Nov 2008)

danke erstmal aber ich hätte noch eine frage zum tokenizer.
wie kann ich es programmieren, dass mir alle zeichen eines strings einzeln angezeigt werden?


----------



## SlaterB (10. Nov 2008)

mit dem Tokenizer am besten gar nicht, sondern mit String.charAt()


----------



## Eminent (11. Nov 2008)

SlaterB hat gesagt.:
			
		

> mit dem Tokenizer am besten gar nicht, sondern mit String.charAt()



Oder mit String#toCharArray()


----------



## Fragender (11. Nov 2008)

Kann mir jemand vielleicht nur einen kurzen code schreiben, damit ich das verstehe?


----------



## lama (11. Nov 2008)

```
// String auf Großbuchstaben pruefen.
		String s = "Hallo, ich bin ein Test!";
		
		for (int i=0; i < s.length(); i++) {
			if (Character.isUpperCase(s.charAt(i)))
				System.out.println("Grosser Buchstabe bei: "+i);
		}
```

Wie das ganze dann für Kleinbuchstaben aussieht sollte klar sein. Schau dir mal Character.isLowerCase() an.


----------



## Fragender (11. Nov 2008)

komisch bei mir erscheint dann:

Grosser Buchstabe bei: 0
Grosser Buchstabe bei: 19


----------



## lama (11. Nov 2008)

Das ist auch korrekt.

H ist an der nullten Position des Strings und T an der neunzehnten. Der Rechner fängt bei Arrays (das ist dann ein Char-Array) bei 0 an zu zählen, nicht bei 1.

Wenn du die Ausgabe "menschlich" haben willst, gibst du statt i einfach (i+1) aus im out.println.


```
// String auf Grossschreibung pruefen.
		String s = "HaLlo Du LeSeR!";
		
		for (int i=0; i < s.length(); i++) {
			if (Character.isUpperCase(s.charAt(i)))
				System.out.println("Grosser Buchstabe bei: "+(i+1)+" - "+s.charAt(i));
		}
```

Ausgabe:

```
Grosser Buchstabe bei: 1 - H
Grosser Buchstabe bei: 3 - L
Grosser Buchstabe bei: 7 - D
Grosser Buchstabe bei: 10 - L
Grosser Buchstabe bei: 12 - S
Grosser Buchstabe bei: 14 - R
```

EDIT: Bitte.


----------



## Fragender (11. Nov 2008)

ahhh stimmt. danke.
endlich eine lösung.    
du bist meine rettung


----------

