如何在Ruby中将整数数组连接到单个整数

Kev*_*Dog 8 ruby arrays concatenation

给定数组[1,2,3],是否有一种方法(除迭代之外)将其转换为整数123?

arn*_*nep 13

只需加入数组并将结果字符串转换为整数:

[1,2,3].join.to_i
Run Code Online (Sandbox Code Playgroud)


Mla*_*vić 9

如果要避免与String进行转换,可以使用inject:

[1,2,3].inject{|a,i| a*10 + i}
#=> 123
Run Code Online (Sandbox Code Playgroud)


Mic*_*ohl 6

我个人会用

Integer([1,2,3].join, 10) #=> 123
Run Code Online (Sandbox Code Playgroud)

因为如果你有非数字数组元素,它具有抛出异常的好副作用,你可以处理它:

>> Integer([1,2,'a'].join, 10) # ArgumentError: invalid value for Integer: "12a"
Run Code Online (Sandbox Code Playgroud)

比较这个to_i:

>> [1,2,'a'].join.to_i #=> 12
Run Code Online (Sandbox Code Playgroud)