Converting A String To Int In Groovy


Answer :

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


Several ways to do it, this one's my favorite:



def number = '123' as int


As an addendum to Don's answer, not only does groovy add a .toInteger() method to Strings, it also adds toBigDecimal(), toBigInteger(), toBoolean(), toCharacter(), toDouble(), toFloat(), toList(), and toLong().



In the same vein, groovy also adds is* eqivalents to all of those that return true if the String in question can be parsed into the format in question.



The relevant GDK page is here.



Comments

Popular posts from this blog

"Cannot Create Cache Directory /home//.composer/cache/repo/https---packagist.org/, Or Directory Is Not Writable. Proceeding Without Cache"

Android How Can I Convert A String To A Editable