2013-04-18 84 views
-1

給定一個包含逗號分隔數字的字符串,是否可以對它們執行數學運算?對字符串中的數字執行數學運算

例如,如何取字符串"123,456,789",從中提取數字,並執行像123 + 456456 - 123這樣的操作?

+1

那又如何?什麼是問題? – sawa

+1

如何在你的字符串上使用'split'?像's.split(「,」)',它會給你一個字符串數字的數組。然後,你可以隨心所欲地執行任何你想要的。 –

回答

0

既然你只胡鬧了,你可以使用evalgsub

>> eval '123,456,789'.gsub(',', '*') # 44253432 
>> eval '123,456,789'.gsub(',', '+') # 1368 
>> eval '123,456,789'.gsub(',', '-') # -1122 
+0

非常感謝jvnill – kattashri

-1

在這裏你去:

s = "123,456,789" 

s.split(',').reduce(0) do |result, number| 
    result = result + number.to_i 
end 

更改內部reduce塊的標誌從+-或任何你需要的。

+0

如果你用'*'做了這個,那總會給出'0'。我不知道這是你的意圖。 – sawa

+0

sawa,你是對的。不知道我在想什麼。將更新答案 – gmile

+0

沿着你的路線,也許你可以做:'s.split(「,」)。map(&:to_i).inject(:+)'。 – sawa

1

您可以使用split(',') 分割數組中的字符串現在,您可以使用to_i與任何數組元素。 希望它可以幫助你。

3

您可以使用injectsplit,並map方法 如:

"123,32,3,4,5,6, 2,34".split(",").map(&:to_i).inject(&:+) 

您可以使用eval也,但eval是緩慢且耗時的。

相關問題