我想下面的数组转换:如何将数组数组转换为整数?
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
我们不见在Ruby中使用了很多,但它是C语言中的中流砥柱,经常在Perl中使用。这是Kernels的printf
,sprintf
,format
和String的%
的另一面。
要对此进行一点说明,'#join'会将每个元素隐式转换为一个字符串,然后将它们连接在一起而不带分隔符,从而导致数组中值的字符串连接。然后用'to_i'将其转换为整数。 –
太棒了,谢谢 – rahrahruby
@ChrisHeald添加了文档来澄清。 – squiguy