我正在尝试转换以下数组:
2.0.0-p0 :021 > test = 1, 440, 840
=> [1, 440, 840]
到以下整数:
1440840
如果我做了split(',')
然后加入它们,那就行了,但我确信有更好的方法。
答案 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中使用。这是内核printf
,sprintf
,format
和字符串%
的反面。