2013-07-19 78 views
1

我想下面的數組轉換:如何將數組數組轉換爲整數?

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

以下整數:

1440840 

如果我做了split(','),然後加入他們的行列,它的工作原理,但我敢肯定有一個更好的方法。

回答

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 > 
+1

要對此進行一點說明,'#join'會將每個元素隱式轉換爲一個字符串,然後將它們連接在一起而不帶分隔符,從而導致數組中值的字符串連接。然後用'to_i'將其轉換爲整數。 –

+0

太棒了,謝謝 – rahrahruby

+1

@ChrisHeald添加了文檔來澄清。 – squiguy

0

如何

test.inject { |ttl, n| ttl * 1000 + n } 
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 

我們不見在Ruby中使用了很多,但它是C語言中的中流砥柱,經常在Perl中使用。這是Kernels的printf,sprintf,format和String的%的另一面。