我有一个字符串,表示一个整数值,并希望将其转换为int。groovy中是否有类似于Java的Integer.parseInt(String)?


当前回答

作为Don回答的补充,groovy不仅为Strings添加了. tointeger()方法,还添加了toBigDecimal()、toBigInteger()、toBoolean()、toCharacter()、toDouble()、toFloat()、toList()和toLong()。

同样,groovy还添加了is* eqivalents,如果所讨论的String可以解析为所讨论的格式,则返回true。

相关的GDK页面在这里。

其他回答

Groovy可以很好地接受Java表单。如果你问是否有一个Groovier的方法,有一个方法去整数。

如下所示:

String s = "99"
assert 99 == Integer.parseInt(s)
Integer i = s as Integer
assert 99 == i
def str = "32"

int num = str as Integer

有几种方法,这是我最喜欢的:

def number = '123' as int

使用toInteger()方法将字符串转换为整数,例如:

int value = "99".toInteger()

另一种避免使用已弃用方法(见下文)的方法是

int value = "66" as Integer

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

String number = "66"

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

弃用更新

在Groovy的最新版本中,toInteger()方法之一已被弃用。以下内容摘自Groovy 2.4.4中的org.codehaus.groovy.runtime.StringGroovyMethods

/**
 * 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);
}

你可以使用一些糟糕的方法来强制调用该方法的非弃用版本:

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

就我个人而言,我更喜欢:

int num = 66 as Integer

作为Don回答的补充,groovy不仅为Strings添加了. tointeger()方法,还添加了toBigDecimal()、toBigInteger()、toBoolean()、toCharacter()、toDouble()、toFloat()、toList()和toLong()。

同样,groovy还添加了is* eqivalents,如果所讨论的String可以解析为所讨论的格式,则返回true。

相关的GDK页面在这里。