如何将数组转换为整数?

时间:2013-07-19 22:21:35

标签: ruby

我正在尝试转换以下数组:

2.0.0-p0 :021 > test = 1, 440, 840
 => [1, 440, 840]

到以下整数:

1440840

如果我做了split(',')然后加入它们,那就行了,但我确信有更好的方法。

3 个答案:

答案 0 :(得分:5)

如果它是一个数组,则无需使用拆分。只是做:

test.join.to_i

使用join运行示例:

2.0.0-p195 :007 > t.is_a? Array
 => true 
2.0.0-p195 :008 > t.join.to_i
 => 1440840 
2.0.0-p195 :009 > 

答案 1 :(得分:0)

怎么样

test.inject { |ttl, n| ttl * 1000 + n }

答案 2 :(得分:0)

以下是一些值得思考的事情:

STRING = '1,440,840'

STRING.gsub(',', '').to_i # => 1440840
STRING.tr(',', '').to_i # => 1440840
STRING.delete(',').to_i # => 1440840
STRING.scan(/\d+/).join.to_i # => 1440840

require 'scanf'
STRING.scanf('%d,%d,%d').join.to_i # => 1440840

我们没有看到scanf在Ruby中使用过多,但它是C语言的中流砥柱,并且经常在Perl中使用。这是内核printfsprintfformat和字符串%的反面。