我正在做一個kata,它要求我將兩個數字串(例如給定爲「1 2 3 4 5 6」)轉換爲整數,然後添加這些整數,然後確定哪個值更大以打印出一條消息。 這是我到目前爲止有:爲什麼我不能將數字作爲字符串更改爲整數?
def goodVsEvil(good, evil)
goodarr = []
evilarr = []
goodarr.push(good.split(" "))
evilarr.push(evil.split(" "))
goodarr.each{|n| n.to_i}
evilarr.each{|n| n.to_i}
goodsum = goodarr.inject(:+)
evilsum = evilarr.inject(:+)
if goodsum > evilsum
return "Battle Result: Good triumphs over Evil"
elsif goodsum < evilsum
return "Battle Result: Evil eradicates all trace of Good"
elsif goodsum = evilsum
return "Battle Result: No victor on this battle field"
end
end
我分割字符串轉換成個體數和推入各自對應的數組,但我需要將它們轉換成整數,並解釋將無法識別.to_i
方法作爲一種有效的方法。 我該如何解決這個問題,或者我錯了什麼?
最後說明最後一個條件是使用賦值'=',而不是平等''== – engineersmnky
可能不相關到這個問題,但實現相同的另一種方法是使用正則表達式。例如:good_sum = good.scan(/ \ d + /)。collect(&:to_i).sum – nkm
@nkm我的想法是以不同的方式獲得總和:'good_sum = eval(good.gsub(「 「,」+「))'也適用。 – pjd