我需要验证Groovy中的文本字段。
我的问题是第二行,我尝试检查字符串是否为数字:
println("Valor del año: " + newValue.toString());
println("Valor true/false añoEntero: " + newValue.toString().isNumber());
打印的输出是:
Jun 12, 2014 11:17:46 AM UTC Valor del año: 1995
Jun 12, 2014 11:17:46 AM UTC JBO-25150: The method isNumber on class java.lang.String is not permitted.
你能帮我用Groovy中的正确方法验证一个整数吗?
此致
玛丽亚
答案 0 :(得分:2)
使用String.isInteger()
,例如
assert '33'.isInteger()
assert 'assa'.isInteger() == false
assert '44.3'.isInteger() == false
答案 1 :(得分:0)
您可能正在使用较旧版本的Groovy(older than 1.5),该版本没有isInteger
和isNumber
方法。您可以自己实施检查:
Boolean isNumber(value) {
try {
new BigDecimal(value)
return true
} catch (MissingMethodException exception) {
return false
}
}
然后用:
来调用它println("Valor del año: " + newValue.toString())
println("Valor true/false añoEntero: " + isInteger(newValue.toString()))
还有一些测试:
assert !isNumber('a')
assert isNumber('-4')
assert isNumber('3')
assert isNumber('1234.5')