我有下面的代码来解析一个名为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