Postleitzahl direkt nach Eingabe prüfen?

Lexxy2000

Mitglied
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:

Java:
 //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:

Java:
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: 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.

Java:
String InputPlz = \d{5})

ODER

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

Muss ich oben über Input noch etwas einbinden?

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

Zurück
Oben