假设我在Groovy中定义了一个这样的数组
def int[] a = [1,9]
现在我想将此数组转换为int
变量说a1
,使a1
的值为 19 (这是数组中的数值) a
)以任何方式做到这一点?
答案 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