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

瞑想すべき事柄を以下に示します。

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

scanfRuby ではあまり使用されていませんが、C では主力であり、Perl ではよく使用されます。カーネルのprintfsprintfformatおよび String のの反対側です%

于 2013-07-20T00:42:23.930 に答える
0

どうですか

test.inject { |ttl, n| ttl * 1000 + n }
于 2013-07-19T22:50:08.673 に答える