对字符串中的数字执行数学运算

时间:2013-04-18 08:12:57

标签: ruby

给定一个包含逗号分隔数字的字符串,是否可以对它们执行数学运算?

例如,如何获取字符串"123,456,789",从中提取数字,并执行123 + 456456 - 123等操作?

4 个答案:

答案 0 :(得分:3)

您可以使用injectsplitmap方法 例如:

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

您也可以使用eval,但eval速度慢且耗时。

答案 1 :(得分:1)

您可以使用split(',')拆分数组中的字符串 现在,您可以将to_i与任何数组元素一起使用。 希望它可以帮到你。

答案 2 :(得分:0)

由于你只是乱七八糟,你可以使用evalgsub

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

答案 3 :(得分:-1)

你走了:

s = "123,456,789"

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

reduce块内的符号从+更改为-或您需要的任何内容。