使用Groovy验证整数

时间:2014-06-12 11:32:11

标签: groovy

我需要验证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中的正确方法验证一个整数吗?

此致

玛丽亚

2 个答案:

答案 0 :(得分:2)

使用String.isInteger(),例如

assert '33'.isInteger()
assert 'assa'.isInteger() == false
assert '44.3'.isInteger() == false

答案 1 :(得分:0)

您可能正在使用较旧版本的Groovy(older than 1.5),该版本没有isIntegerisNumber方法。您可以自己实施检查:

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')