【发布时间】:2015-04-22 04:38:45
【问题描述】:
我正在尝试从字符串中解析出双精度。我有代码:
Pattern p = Pattern.compile("-?\\d+(\\.\\d+)?");
Matcher m = p.matcher("reciproc(2.00000000000)");
System.out.println(Double.parseDouble(m.group()));
此代码引发 java.lang.IllegalStateException。我希望输出为 2.00000000000。我从Java: Regex for Parsing Positive and Negative Doubles 那里得到了正则表达式,它似乎对他们有用。我也尝试了其他一些正则表达式,它们都抛出了同样的错误。我在这里遗漏了什么吗?
【问题讨论】:
-
那么你的结果是什么?
-
它抛出一个 java.lang.IllegalStateException
-
检查传递给
Pattern.matcher()的字符串。你认为它会与你给出的正则表达式匹配吗? -
Pattern.matches("-?\\d+(\\.\\d+)?", "reciproc(2.00000000000)") 返回错误