我想避免try-catch来检查字符串是否实际上是一个有效的double值。
在Double class java-doc中,它显示了一个正则表达式。我觉得它们有点令人沮丧[Java Language / Std Lib。 Spec folk]并没有简单地决定添加一个方便的方法来使用该正则表达式或模式进行这样的检查或常量。
有没有人知道一个流行的包(例如jakarta commons-math实现了这样的测试。我更喜欢避免将javadoc正则表达式复制粘贴到我的代码中,因为它似乎是那么标准的东西,期望在那里有一些实现。
来自Apache Commons的NumberUtils
提供了一个静态方法NumberUtils.isCreatable(someString)
,它检查是否有效的Java编号。你可以阅读this link的完整文档
示例代码:
public static void main(String[] args){
String doubleString = "5.05";
if(NumberUtils.isCreatable(doubleString){
System.out.println("Yayy! a double");
}else{
System.out.println("Oops!!!");
}
}
Dependency要求:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>