2015-10-05 34 views
-1

我試圖將字符串輸入拆分爲整數格式。將字符串轉換爲整數拆分

例子:如果我使用x.split(' ').to_i我得到

9 

undefined method `to_i' 

我怎麼會

x = "9 39 20 38 4 12" 

如果我使用x.to_i,將只返回第一個數字去做這個?

嘗試啓動解決算法:

https://www.hackerrank.com/challenges/simple-array-sum 

回答

2

由於split改變對象的數組,你需要遍歷數組的商品,每個to_i。幸運的是這個函數:

x.split(' ').map(&:to_i)

這是短期的:

x.split(' ').map { |num| num.to_i }

+0

爲了避免多空間的問題,你可以使用'x.split(/ \ s + /)' 。替代'x.split('')'。 – knut

+0

@knut,默認情況下,'split'與split('')'相同。 split('')會自動管理單詞之間的多個空格,所以使用簡單形式'split'就足夠了,除非你改變了默認的'$;'值。 ''a \ t b「.split#=> [」a「,」b「]'。 –

+0

@theTinMan感謝您的評論 - 我不知道這一點。 (在下次發佈之前,我必須測試我的想法;)) – knut