# Groß- und Kleinschreibung



## granini (9. Apr 2006)

Hallo zusammen,

da ich mich nun näher mit Java beschäftige, habe ich mich entschieden diesem Forum beizutreten, um aufkommende Fragen zu klären oder im Laufe der Zeit selber hlefen zu können.

Nun, meine erste Frage beschäftigt sich mit der Groß- und Kleinschreibung. Ich geben einen beliebigen Namen ein, und will nun überprüfen, ob der erste Buchstabe ein Großbuchstabe ist und die folgenden Kleinbuchstaben. Ist das nicht der Fall werfe ich eine Exception aus.
Wie kann ich das mit der Groß- und Kleinschreibung realisieren. Erster Gedanke war die Metode charAt. Damit könnte ich schon mal explizit die einzelnen Buchstaben ansprechen. 
Nur wie überprüfe ich jetzt?


Wäre für ein paar nützliche Tipps dankbar.


Grüsse


----------



## clemson (9. Apr 2006)

hallo und herzlich willkommen!

ich würde das ganze mit regular-expressions lösen.


```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
```


```
String input = "Hubert";
final String pattern = "^[A-Z]{1}[a-z]+";

Pattern p = Pattern.compile(pattern); // generate pattern
Matcher m = p.matcher(input); // create matcher
if (m.matches()) // check, whether the whole input matches the regex
{
	System.out.println(input + " does match Pattern [" + pattern + "]");
}
else
{
	System.out.println(input + " does't match Pattern [" + pattern + "]");
}
```

beziehungsweise


```
final String pattern = "^[A-Z]{1}[a-z]+";
String username = "Hubert";
boolean valid_username = username.matches(pattern);
```


----------



## Redfrettchen (9. Apr 2006)

Hi,
intuitiv würde ich mit regulären Ausdrücken an die Sache herangehen:


```
public boolean isEigenname(String wort) { //oder so ähnlich ^^
    return Pattern.matches( "[A-Z]{1}[a-z]+", wort);
}
```

Also das Wort muss zuerst genau ein Großbuchstabe dann mindestens ein aber sonst beliebig viele Kleinbuchstaben haben. Hier fehlen aber zum Beispiel noch Umlaute und ß. Das sei dem geneigten Leser als Übung überlassen.  :bae:

EDIT: mist, zweiter


----------



## granini (9. Apr 2006)

Danke für eure Antworten. 
Damit werde ich es wohl realisieren.


Damit lassen sich doch auch Zahlenwerte vergleichen, also z.B.:

```
String plz = "34567";
final String pattern = "[0-9]+";
```

Oder?

Und wie kann ich nun überprüfen, ob die Länge des String plz = 5 ist?
Funktioniert ein plz.length mit einer if-Abfrage?

Gruss


----------



## Redfrettchen (9. Apr 2006)

Also entweder mit if oder auch im regulären Ausdruck (falls du nur Ausdrücke mit 5 Zeichen zulassen willst):

```
String plz = "12345"
// Entweder:
if (plz.length()!=5) return false; // hier stand vorher "...(plz.length!=5)..."; length() ist natürlich eine Methode!
return Pattern.matches("[0-9]+", plz);
// oder:
return Pattern.matches("[0-9]{5}", plz);
```

Noch lustiger kann man sichs natürlich auch mit Integer.parseInt(String); und dann mit Math.log(double)/Math.log(10) machen ^^


----------



## bygones (9. Apr 2006)

length ist immer noch eine methode jungs 
also schön die Klammern verwenden....


----------



## Redfrettchen (9. Apr 2006)

ups, wie peinlich, sry (blöde Suggestion...)


----------



## Ark (10. Apr 2006)

In java.lang.Character (Version 1.5) findet sich folgende Methode:

```
public static boolean isUpperCase(int codePoint)
```
MfG
Ark


----------



## ff (11. Apr 2006)

wärs denn schlechter stil, etwas im sinne von 

if(blabla.charAt(i) == humpahumpa.charAt(i)){
....
}
zu machen? wär doch endlos viel einfacher oder?


----------



## ff (11. Apr 2006)

ps: weil chars werden ja in unicode dargestellt und unterscheiden sich somit in ihrer repräsentation von gross- zu kleinschreibung...

(ist aber nur n anfänger-input)


----------



## granini (14. Apr 2006)

Ark hat gesagt.:
			
		

> In java.lang.Character (Version 1.5) findet sich folgende Methode:
> 
> ```
> public static boolean isUpperCase(int codePoint)
> ...



Hi, 

Danke erstmal für ganzen Rückmeldungen.

Zu dieser Methode habe ich aber nochmal eine Frage und zwar wie setzte ich die ein??

Schmitz ist die Eingabe und ihc möchte mit isUpperCase und isLowerCase überprüfen, ob erster Buchstabe groß ist und die folgenden klein..

Geht das damit? Und wenn ja, wie?


----------



## Redfrettchen (14. Apr 2006)

```
String name = "Schmitz";
if (Character.isLowerCase(name.charAt(0))) return false;
for (int i=1; i<name.length(); i++)
    if (Character.isUpperCase(name.charAt(i))) return false;
return true;
```
Obwohl ich die Lösung mit isUpperCase und so nicht schön finde.


----------



## granini (14. Apr 2006)

Ok, Danke.. Pattern gefällt mir auch besser.

Noch eine letzte Frage vorerst..

Ich habe nun mehrer try-Anweisungen geschrieben..


```
try{...
      string name
} catch....

try{...
      string plz
} catch....
```

Kann ich überprüfen, ob alle gewünschten Strings vorhanden sind?


----------



## Redfrettchen (15. Apr 2006)

Wie meinst du das "alle gewünschten Strings vorhanden"?
Du kannst die Strings gegen null und "" prüfen, aber dazu brauchst du eigentlich keine try-catch-Blöcke.


----------

