【问题标题】:How to check whether the input is a number or string by using isNan() in groovy如何在groovy中使用isNan()检查输入是数字还是字符串
【发布时间】:2013-08-12 05:13:21
【问题描述】:

您好,我是 groovy 的初学者,我很困惑如何检查给定的输入是否是数字,我尝试了以下方法

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

请帮助我如何在 groovy 中使用 isNan。我用谷歌搜索了很多但没有找到任何结果。在此先感谢

【问题讨论】:

    标签: groovy groovyshell groovy-console


    【解决方案1】:

    Groovy 的 String::isNumber() 来救援:

    def a = "a"
    
    assert !a.isNumber()
    
    def b = "10.90"
    
    assert b.isNumber()
    assert b.toDouble() == 10.90
    

    【讨论】:

      【解决方案2】:

      要回答你的问题,我不会考虑 isNan()。网上有提到,但是String doc中没有出现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}"
      

      【讨论】:

        【解决方案3】:

        您可以尝试将其转换为数字,如果它不是数字则捕获异常

        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 是一个有效数字但在String 中,如“123”,它也会失败。 123 是数字,但“123”不是。

        【讨论】:

        • 我不高兴这是最佳答案,如果程序的行为是处理数据,无论它是数字类型还是其他类型,那么异常应该不 i> 被使用。顾名思义,异常会捕获意外/不受欢迎的行为。
        【解决方案4】:

        对于带逗号的数字格式(例如:10,00,000),这将失败

        def aNumber = "10,00,000" aNumber.isNumber() 和 aNumber.isDouble() 给出的答案为假。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-04
          • 1970-01-01
          • 2014-12-20
          • 2018-05-03
          • 1970-01-01
          • 2019-04-08
          • 1970-01-01
          • 2020-03-20
          相关资源
          最近更新 更多