Java算术方程字符串java min(x,y),max(x,y),+,-,/,*

问题描述 投票:0回答:1

我想用Java创建一个接收字符串方程式的方法,例如:“ 3 + 2”或“ 32-1 / 3”,甚至是“ min(32,21)”并返回结果我发现ScriptEngine提供了简单操作的解决方案:

ScriptEngineManager mgr = new ScriptEngineManager();
 ScriptEngine engine = mgr.getEngineByName("JavaScript");
 java.lang.String result;
 result = engine.eval(equation).toString();

但是它没有min(),max()功能,并且它也不安全,因为您可以通过它输入恶意脚本。

java string math equation
1个回答
0
投票

来自@kshetline的评论应解决您有关算术表达式问题的问题;至于安全性,我所能想到的就是使用某种框架进行输入清理,或者编写自己的实现。

签出How best to sanitize input in Java webapp.

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.