NumberFormat.parse 返回意外结果

Posted

技术标签:

【中文标题】NumberFormat.parse 返回意外结果【英文标题】:NumberFormat.parse is returning unexpected result 【发布时间】:2012-06-24 18:03:02 【问题描述】:

我希望下面的代码会抛出 ParseException,但它是“2”,任何人都可以解释这一点,或者这是 java 实现中的错误吗?我在最新的 Oracle (1.7.0_05) 和 osx jvms 上运行它。

    try 
        NumberFormat format = NumberFormat.getInstance(Locale.US);
        Number number = format.parse("2 3");
        System.out.println(number);
     catch (ParseException e) 
        System.out.println("2 3 is not a valid number!");
    

【问题讨论】:

【参考方案1】:

这是因为NumberFormat.parse(String) 可能不会使用整个文本进行解析。见here。

【讨论】:

【参考方案2】:

这是预期的结果。

根据documentation,NumberFormat.parse 不一定使用整个字符串。

Java 编程规则 #1:始终阅读文档!

【讨论】:

以上是关于NumberFormat.parse 返回意外结果的主要内容,如果未能解决你的问题,请参考以下文章

NSDateComponents 返回意外结果

为啥此代码片段返回意外结果?

核心数据提取返回意外结果

挂钩 ExtTextOut 会返回意外结果

Informix SQL - 简单选择查询返回意外结果

SQL Server 全文搜索返回意外结果