-1

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

例如,我如何获取字符串"123,456,789",从中提取数字,并执行类似123 + 456or的操作456 - 123

4

4 回答 4

3

您可以使用injectsplitmap方法,例如:

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

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

于 2013-04-18T09:28:07.683 回答
1

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

于 2013-04-18T08:19:18.450 回答
0

由于您只是在胡闹,您可以使用evalgsub

>> eval '123,456,789'.gsub(',', '*') # 44253432
>> eval '123,456,789'.gsub(',', '+') # 1368
>> eval '123,456,789'.gsub(',', '-') # -1122
于 2013-04-18T08:39:48.330 回答
-1

干得好:

s = "123,456,789"

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

将块内的标志reduce+to-或任何您需要的更改。

于 2013-04-18T08:17:21.400 回答