如何在不使用 eval 的情况下评估数学字符串?
Example:
mathstring = "3+3"
无论如何,可以在不使用 eval 的情况下进行评估吗?
也许有正则表达式的东西..?
您必须或者eval
它,或者解析它;既然你不想eval
:
mathstring = '3+3'
i, op, j = mathstring.scan(/(\d+)([+\-*\/])(\d+)/)[0] #=> ["3", "+", "3"]
i.to_i.send op, j.to_i #=> 6
如果你想实现更复杂的东西,你可以使用RubyParser
(正如@LBg 所写here- 你也可以看看其他答案)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)