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


当前回答

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

如下所示:

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

其他回答

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

如下所示:

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

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

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

相关的GDK页面在这里。

这是另一种方法。如果你不喜欢异常。

def strnumber = "100"
def intValue = strnumber.isInteger() ?  (strnumber as int) : null

使用方法仍然应该是toInteger(),因为它并没有真正被弃用。

int value = '99'.toInteger()

String版本已弃用,但CharSequence是String实现的接口。因此,使用字符串是可以的,因为即使方法只能使用CharSequence,您的代码仍然可以工作。isInteger()也是一样

参考这个问题: 如何将字符串转换为CharSequence?

我评论说,因为这个方法被弃用的概念让我感到困惑,我想避免对其他人这样做。

有几种方法可以实现这一点。示例如下

a. return "22".toInteger()
b. if("22".isInteger()) return "22".toInteger()
c. return "22" as Integer()
d. return Integer.parseInt("22")

希望这能有所帮助