3

我正在尝试确定 a 是否String代表 a Double。我希望下面的代码抛出一个NumberFormatException

String s = "type1234";

try {
    Double val = Double.parseDouble(s);
} catch (NumberFormatException e) {
    // Handle exception
    e.printStackTrace();
}

相反,valInfinity. 我在标准 JVM 中运行代码,它确实抛出了NumberFormatException

看起来 Android 忽略了前导字符 'typ',然后将其解析为 e^1234,这超出了Double' 范围。

这是预期的行为吗?如果是这样,确定 a 是否String可以解析为 a的更可靠方法是Double什么?

4

2 回答 2

2

如果您不信任该框架,请使用正则表达式来验证自己。这是执行此操作的一种方法的示例。

    // You can get much fancier than this to handle all cases, but this should handle most
    String regexDouble = "^-?\\d*(\\.\\d+)?$";
    boolean isDouble = val.matches(regexDouble);
于 2012-10-26T22:02:34.220 回答
1

检查字符串是否可以在 Java 中解析为 Double 的最快方法

这篇文章的答案适用于android。我已经在 ICS 上进行了测试。

于 2012-10-26T22:13:55.810 回答