我有以下代码来解析名为str的字符串变量。
NumberFormat formatter = NumberFormat.getInstance();
Number number = formatter.parse(str);
我想捕获当str不是数字时抛出的异常,以验证它。我的问题是它并不总是抛出预期的ParseException。当字符串str以数字开头但随后是字符时,似乎会获取字符串的前几个字符并将其解析为数字。
例如:
- 如果str="a10",则会抛出ParseException - 如果str="10a",则不会抛出异常,数字为10
我不能使用Double.parseDouble(str),因为str可以有逗号和点,如1,000.98,而此方法无法理解这种格式。
为什么会发生这种情况?我还能用其他方法进行验证吗? 谢谢