如何在groovy中将数组转换为int?

时间:2011-03-22 14:47:24

标签: groovy

假设我在Groovy中定义了一个这样的数组

def int[] a = [1,9]

现在我想将此数组转换为int变量说a1,使a1的值为 19 (这是数组中的数值) a)以任何方式做到这一点?

5 个答案:

答案 0 :(得分:6)

我会去:

[1, 2, 3, 4].inject(0) { a, h -> a * 10 + h }

答案 1 :(得分:2)

1)你不需要def:

int[] a = [0,9]

2)09你是什么意思?那不是9吗?你怎么看这个编码工作?

如果你的意思是你只想将数字连接在一起,那么;

[ 1, 2, 3, 4 ] == 1234

然后你可以这样做:

int b = a.collect { "$it" }.join( '' ) as int

将每个元素转换为字符串,将它们连接在一起,然后将生成的String解析为int

答案 2 :(得分:1)

def sb = new StringBuilder()
[0,9].each{
    sb.append(it)
}
assert sb.toString() == "09"

答案 3 :(得分:1)

根据您对其他答案的评论,这应该可以帮到您:

def a = [ 0, 9, 2 ]

int a1 = a.join('') as int​

assert a1 == 92

从其他答案中可以看出,有很多方法可以达到你想要的效果。只需使用最适合您编码风格的那个。

答案 4 :(得分:0)

你已经有很多选择,但只是为了增加混乱,这是另一个选择:

int[] a = [1,9]
Integer number = a.toList().join().toInteger()

// test it
assert number == 19