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! Zitieren
geloescht_Newlukai Geschrieben 10. Januar 2007 Geschrieben 10. Januar 2007 Pattern.matches("\\d*\\.\\d+", s) Genügt das? Zitieren
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. Zitieren
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. Zitieren
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. Zitieren
_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 Zitieren
Tre Geschrieben 11. Januar 2007 Autor Geschrieben 11. Januar 2007 Danke, werd ich mir anschauen. Zitieren
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 Zitieren
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. Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.