groovygroovyshellgroovy-console

How to check whether the input is a number or string by using isNan() in groovy


Hello i am a beginner to groovy i am cofused how to check whether the given input is a number or not i tried the following

def a= ' 12.571245ERROR'
if(a.isNan()==0)
{
println("not a number")
}
else
{
println("number")
}

Kindly help me how to use isNan in groovy.I googled it lot but didnt find any result . Thanks in advance


Solution

  • You can try to cast it to number and catch an exception if its not a number

    def a= ' 12.571245ERROR'
    
    try {
        a as Double
        println "a is number"
    }catch (e) {
        println "a is not a number"
    }
    

    Or

    if(a instanceof Number)
        println "Number"
    else
        println "NaN"
    

    Although keep in mind, in the second way of checking it, it would fail even if a is a valid number but in a String like "123". 123 is Number but "123" is not.