Ich habe den folgenden Code, um eine String-Variable namens str zu analysieren.Seltsames Verhalten von NumberFormat Java
Ich möchte die Exception abfangen, die geworfen wird, wenn str keine Zahl ist, nur um sie zu bestätigen. Das Problem, das ich habe, ist, dass es nicht immer die erwartete ParseException wirft. Wenn die String-Zeichenfolge mit einer Zahl beginnt, dann aber Zeichen enthält, scheint sie die ersten Zeichen der Zeichenfolge zu erhalten und sie als Zahl zu analysieren.
Zum Beispiel:
- wenn str = "a10" dann ausgelöst wird, ein ParseException
- wenn str = "10a" dann keine Ausnahme ausgelöst und Zahl = 10
Ich kann nicht verwenden Double.parseDouble (str) weil str kann Kommas und Punkte wie 1.000.98 haben und dieses Format wird von dieser Methode nicht verstanden.
Warum passiert das? Kann ich es auf andere Weise validieren? Dank
Ich meine nicht, dass das Verhalten von Number falsch war, aber ich hatte das API falsch verstanden. Ich dachte, Position sollte angeben, bis zu welchem Charakter ich den String analysieren wollte. Jetzt verstehe ich, warum es so entworfen wurde. Danke für all deine Antworten. – Javi