给定一个包含逗号分隔数字的字符串,是否可以对它们执行数学运算?
例如,如何获取字符串"123,456,789"
,从中提取数字,并执行123 + 456
或456 - 123
等操作?
答案 0 :(得分:3)
您可以使用inject
,split
和map
方法
例如:
"123,32,3,4,5,6, 2,34".split(",").map(&:to_i).inject(&:+)
您也可以使用eval,但eval
速度慢且耗时。
答案 1 :(得分:1)
您可以使用split(',')
拆分数组中的字符串
现在,您可以将to_i
与任何数组元素一起使用。
希望它可以帮到你。
答案 2 :(得分:0)
由于你只是乱七八糟,你可以使用eval
和gsub
>> 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
块内的符号从+
更改为-
或您需要的任何内容。