我有下面的代碼來解析一個名爲str的字符串變量。NumberFormat的奇怪行爲Java
NumberFormat formatter = NumberFormat.getInstance();
Number number = formatter.parse(str);
我想捕捉異常拋出時,不是一個數字只是爲了驗證它。我遇到的問題是它並不總是拋出預期的ParseException。當字符串str以數字開頭,但後面是字符時,它似乎會得到字符串的第一個字符並將它們解析爲數字。
例如:
- 如果str = 「A10」 隨後被拋出一個ParseException
- 如果str = 「10A」,則沒有異常拋出和數量= 10
我不能使用Double.parseDouble(str)是因爲str可以包含逗號和點數如1,000.98,並且此格式不能被此方法理解。
這是怎麼發生的?我可以用其他方式驗證它嗎? 感謝
我不是那個意思的NumberFormat的行爲是錯誤的,但我誤解了API。我認爲職位是要表明我想解析字符串的人物。現在我明白爲什麼這樣設計了。感謝您的所有支持。 – Javi 2010-02-15 13:47:35