我正在尝试转换以下数组:
2.0.0-p0 :021 > test = 1, 440, 840
=> [1, 440, 840]
为以下整数:
1440840
如果我做一个split(',')
然后加入他们,它会起作用,但我相信有更好的方法。
我正在尝试转换以下数组:
2.0.0-p0 :021 > test = 1, 440, 840
=> [1, 440, 840]
为以下整数:
1440840
如果我做一个split(',')
然后加入他们,它会起作用,但我相信有更好的方法。
如果它是一个数组,则无需使用拆分。做就是了:
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 >
怎么样
test.inject { |ttl, n| ttl * 1000 + n }
以下是一些需要冥想的事情:
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 的,sprintf
和format
String 的对面%
。