Veröffentlicht 10. Januar 200718 j 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!
10. Januar 200718 j 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.
10. Januar 200718 j 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.
10. Januar 200718 j 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.
11. Januar 200718 j 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
15. Januar 200718 j Hi, dafür reicht ein double d=Double.parseDouble(s); Bei der Zeile einfach die NumberFormatException abfangen. Gruß Jaraz
15. Januar 200718 j 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.
15. Januar 200718 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.