给定一个包含逗号分隔数字的字符串,是否可以对它们执行数学运算?
例如,我如何获取字符串"123,456,789"
,从中提取数字,并执行类似123 + 456
or的操作456 - 123
?
给定一个包含逗号分隔数字的字符串,是否可以对它们执行数学运算?
例如,我如何获取字符串"123,456,789"
,从中提取数字,并执行类似123 + 456
or的操作456 - 123
?
您可以使用inject
、split
和map
方法,例如:
"123,32,3,4,5,6, 2,34".split(",").map(&:to_i).inject(&:+)
您也可以使用 eval,但eval
速度慢且耗时。
您可以在数组中拆分字符串,通过使用split(',')
现在,您可以to_i
与任何数组元素一起使用。希望它可以帮助你。
由于您只是在胡闹,您可以使用eval
和gsub
>> eval '123,456,789'.gsub(',', '*') # 44253432
>> eval '123,456,789'.gsub(',', '+') # 1368
>> eval '123,456,789'.gsub(',', '-') # -1122
干得好:
s = "123,456,789"
s.split(',').reduce(0) do |result, number|
result = result + number.to_i
end
将块内的标志reduce
从+
to-
或任何您需要的更改。