1

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

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

为以下整数:

1440840

如果我做一个split(',')然后加入他们,它会起作用,但我相信有更好的方法。

4

3 回答 3

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 > 
于 2013-07-19T22:27:01.420 回答
0

怎么样

test.inject { |ttl, n| ttl * 1000 + n }
于 2013-07-19T22:50:08.673 回答
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它是 Kernels 的,sprintfformatString 的对面%

于 2013-07-20T00:42:23.930 回答