# Postleitzahl direkt nach Eingabe prüfen?



## Lexxy2000 (5. Jan 2011)

Hallo liebe Java-Profis,

eine der einfachsten Aufgaben und ich "stehe im Wald" ...

*Was ich erreichen möchte:*
Über ein "JOptionPane.showInputDialog" soll eine Postleitzahl eingegeben werden. Solange keine 5-stellige Zahl eingegeben wurde soll das Fenster so lange immer wieder erscheinen bis eine 5-stellige Zahl eingegeben wurde. Es soll auch kein Hinweis kommen, dass die PLZ falsch ist. 

*Wie "genau" soll die Postleitzahl sein?*
Es reicht entweder der Check "Zahlen 0-9, Stellen 5" oder "größer 9999 und kleiner 100000". Es kann auch "00000" als gültige PLZ akzeptiert werden. 

*Was ich schon versucht habe:*
Ich habe schon einen Check bei einer anderen Eingabe eingebaut und alles klappt super. So wollte ich auch den PLZ-Check aufsetzen:

Beispiel Check Buch oder CD:


```
//InputArtikelgruppe nur akzeptieren wenn Buch oder CD sonst wiederholen
String inputArtikelgruppe = "x";
while (!inputArtikelgruppe.equals("Buch") && !inputArtikelgruppe.equals("CD")) {
inputArtikelgruppe = JOptionPane.showInputDialog("Artikelgruppe von Artikel " + AnzahlArtikelInfo + " (bitte nur Buch oder CD eingeben): ");
            }
```

Das ist meine Eingabe ohne PLZ-Check:


```
String inputPlz = JOptionPane.showInputDialog("Plz von Kunde " + AnzahlKundenInfo +": ");
```

Hatte es per regexp und [0-9]{5} versucht und mal per while-Schleife mit > und < aber mache da wohl was falsch. 

Wäre super wenn mir jemand einen Lösungshinweis geben kann wie ich eine Postleitzahl überprüfen kann.

Vielen Dank
Tobias


----------



## Thief (5. Jan 2011)

RegExp mit \d{5} ?


----------



## Murray (5. Jan 2011)

Zeigt doch mal Deinen Code mit dem Regex


----------



## Lexxy2000 (5. Jan 2011)

@Thief: Danke, Zahlen, 5 Stück - das gefällt.
@Murray: die "alte" Version ist gelöscht, aber ich hatte Versionen in dieser Art (siehe Code). Wie ich das aber in die Abfrage einbaue ist mir ein Rätsel. Ich hoffe Schlaf wird es richten - machmal träumt man ja die Lösungen.


```
String InputPlz = \d{5})

ODER

String inputPlz=new RegExp("\\d{5})
```

Muss ich oben über Input noch etwas einbinden?


```
String inputPlz = JOptionPane.showInputDialog("Plz von Kunde " + AnzahlKundenInfo +": ");
```


----------



## Murray (5. Jan 2011)

Aus dem Post werde ich irgendwie nicht schlau - aber vielleicht sehen wir ja morgen früh alle wieder klarer.


----------



## @Work (6. Jan 2011)

Schau dir mal Pattern an. Da geht dann sowas wie:

```
boolean b = Pattern.matches("\d{5}", "12345");
```


----------



## LoR (6. Jan 2011)

```
String result = "";
        while (result != null && !result.matches("\\d{5}")) {
            result = JOptionPane.showInputDialog("Plz von Kunde: ");
        }
```


----------



## Lexxy2000 (6. Jan 2011)

Gibt es hier auch einen "Ich liebe Euch"-Button? Vielen Dank für die komplette Code-Zeile - das wars! So kann ich die anderen Felder auch noch abchecken!

1000 Dank
Gruß


----------

