在Groovy中将字符串转换为int

在Groovy中将字符串转换为int

问题描述:

我有一个String,它代表一个整数值,并想将其转换为int.是否有与Java的Integer.parseInt(String)相当的常规功能?

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.parseInt(String)?

使用toInteger()方法将String转换为Integer,例如

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

如果需要在执行转换之前检查String 是否可以转换,请使用

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
}

弃用更新

在Groovy的最新版本中,不推荐使用toInteger()方法之一.以下内容摘自Groovy 2.4.4中的org.codehaus.groovy.runtime.StringGroovyMethods

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

我个人更喜欢:

int num = 66 as Integer