Tre Geschrieben 10. Januar 2007 Geschrieben 10. Januar 2007 Hallo, ich möchte mit folgendem Code erreichen, dass nur Doublewerte angenommen werden und er ansonsten, den Dialog wiederholt: do { s = JOptionPane.showInputDialog ( "Bitte ersten Operanden eingeben" ); } while (!Pattern.matches("...", s)); Ich versuche schon stundenlang mit den verschiedensten Mitteln den richtigen Ausdruck dafür zu finden, viell. kann mir jemand helfen? Vielen Dank!
geloescht_Newlukai Geschrieben 10. Januar 2007 Geschrieben 10. Januar 2007 Pattern.matches("\\d*\\.\\d+", s) Genügt das?
Tre Geschrieben 10. Januar 2007 Autor Geschrieben 10. Januar 2007 Vielen Dank für die schnelle Antwort! Prima! Ich hatte mich etwas unpräsise ausgedrückt, es wäre schön wenn alle Möglichkeiten des Datentyps double gingen. Also auch z.B. 7 oder -54.245 Das wäre klasse.
geloescht_Newlukai Geschrieben 10. Januar 2007 Geschrieben 10. Januar 2007 So? Pattern.matches("-?\\d*\\.?\\d+", s); Kleiner Tipp: Hier findest Du die Syntax für reguläre Ausdrücke die von Pattern unterstützt wird.
Tre Geschrieben 10. Januar 2007 Autor Geschrieben 10. Januar 2007 Ja, klasse, es klappt! :marine Den Link hatte ich u.a. auch schon, aber ich habe den Eindruck, dass ich da ein grundsätzliches Problem habe. Ich kann damit überhaupt nichts anfangen. Kennst Du ein Tutorium das diese Regex - geschichte bzw. das mit den Pattern ausführlich erklärt? Danke.
_Arvid_ Geschrieben 11. Januar 2007 Geschrieben 11. Januar 2007 Ich fand damals das Tutorial auf Regenechsen.de ganz nett. (Nein, "nett" an dieser Stelle nicht als "kleiner Bruder von Schei?e", sondern als "gut". ) Beste Grüße Arvid
Jaraz Geschrieben 15. Januar 2007 Geschrieben 15. Januar 2007 Hi, dafür reicht ein double d=Double.parseDouble(s); Bei der Zeile einfach die NumberFormatException abfangen. Gruß Jaraz
geloescht_Newlukai Geschrieben 15. Januar 2007 Geschrieben 15. Januar 2007 dafür reicht ein double d=Double.parseDouble(s); Bei der Zeile einfach die NumberFormatException abfangen. lol Den einfachen Weg hab' ich übersehen. Aber viele Wege führen ja nach Rom.
perdian Geschrieben 15. Januar 2007 Geschrieben 15. Januar 2007 Den einfachen Weg hab' ich übersehen. Aber viele Wege führen ja nach Rom.Naja so einfach ist der Weg nicht, wenn erstmal verschiedene Locales auftauchen. Im amerikanischen Raum z.B. wäre das korrekte Format 1,234.56 wogegen wir in Deutschland wohl eher 1.234,56 schreiben würden. Double.parseDouble ist aber nur mit dem ersten Format wirklich glücklich
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden