如何在不使用eval的情况下评估数学字符串?
例:
mathstring = "3+3"
Run Code Online (Sandbox Code Playgroud)
无论如何,可以在不使用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
Run Code Online (Sandbox Code Playgroud)
如果你想实现更复杂的东西你可以使用RubyParser(正如@LBg在这里写的那样- 你也可以看看其他答案)
| 归档时间: |
|
| 查看次数: |
3015 次 |
| 最近记录: |