Converting a string to int in Groovy

前端 未结 13 2291
陌清茗
陌清茗 2020-11-30 18:45

I have a String that represents an integer value and would like to convert it to an int. Is there a groovy equivalent of Java\'s Integer.pars

13条回答
  •  孤独总比滥情好
    2020-11-30 19:14

    Use the toInteger() method to convert a String to an Integer, e.g.

    int value = "99".toInteger()
    

    An alternative, which avoids using a deprecated method (see below) is

    int value = "66" as Integer
    

    If you need to check whether the String can be converted before performing the conversion, use

    String number = "66"
    
    if (number.isInteger()) {
      int value = number as Integer
    }
    

    Deprecation Update

    In recent versions of Groovy one of the toInteger() methods has been deprecated. The following is taken from org.codehaus.groovy.runtime.StringGroovyMethods in Groovy 2.4.4

    /**
     * Parse a CharSequence into an Integer
     *
     * @param self a CharSequence
     * @return an Integer
     * @since 1.8.2
     */
    public static Integer toInteger(CharSequence self) {
        return Integer.valueOf(self.toString().trim());
    }
    
    /**
     * @deprecated Use the CharSequence version
     * @see #toInteger(CharSequence)
     */
    @Deprecated
    public static Integer toInteger(String self) {
        return toInteger((CharSequence) self);
    }
    

    You can force the non-deprecated version of the method to be called using something awful like:

    int num = ((CharSequence) "66").toInteger()
    

    Personally, I much prefer:

    int num = 66 as Integer
    

提交回复
热议问题