我想下面的數組轉換:如何將數組數組轉換爲整數?
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