你好,我是groovy的初学者,我很困惑如何检查给定的输入是否是一个数字,我尝试了以下方法
def a= ' 12.571245ERROR' if(a.isNan()==0) { println("not a number") } else { println("number") }
请帮我如何在groovy中使用isNan。我在谷歌上搜索了很多,但没有找到任何结果。先谢谢你了
kqqjbcuj1#
Groovy的String::isNumber()来拯救:
String::isNumber()
def a = "a" assert !a.isNumber() def b = "10.90" assert b.isNumber() assert b.toDouble() == 10.90
pprl5pva2#
回答你的问题,我不认为是南()。它在网络上被提及,但它没有出现在String文档for the GDK中。想想这个:
def input = "12.37" def isNumber = input.isDouble() println "isNumber : ${isNumber}"
或者使用更像Java的东西:
def input = "12.37error" def isNumber = false try { double value = Double.parseDouble(input) isNumber = true } catch (Exception ex) { } println "isNumber : ${isNumber}"
8yparm6h3#
您可以尝试将其强制转换为number,如果不是数字,则捕获异常
def a= ' 12.571245ERROR' try { a as Double println "a is number" }catch (e) { println "a is not a number" }
或者
if(a instanceof Number) println "Number" else println "NaN"
但是请记住,在第二种检查方法中,即使a是一个有效的数字,但在像“123”这样的String中,它也会失败。123是数字,但“123”不是。
a
String
iqxoj9l94#
对于带逗号的数字格式(例如:10,00,000)def aNumber =“10,00,000”aNumber.isNumber()和aNumber.isDouble()给予的答案为false。
4条答案
按热度按时间kqqjbcuj1#
Groovy的
String::isNumber()
来拯救:pprl5pva2#
回答你的问题,我不认为是南()。它在网络上被提及,但它没有出现在String文档for the GDK中。
想想这个:
或者使用更像Java的东西:
8yparm6h3#
您可以尝试将其强制转换为number,如果不是数字,则捕获异常
或者
但是请记住,在第二种检查方法中,即使
a
是一个有效的数字,但在像“123”这样的String
中,它也会失败。123是数字,但“123”不是。iqxoj9l94#
对于带逗号的数字格式(例如:10,00,000)
def aNumber =“10,00,000”aNumber.isNumber()和aNumber.isDouble()给予的答案为false。