Java中有没有类似于eval()的函数?目的是计算一个字符串类型的数学表达式的值

比如计算下面字符串数学表达式的值
String str = "1+2*(3+6)-5/2";

有啊,脚本引擎

public class Test {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("js");
String str = "1+2*(3+6)-5/2";
Double result =(Double) se.eval(str);
System.out.println(result);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-22
OgnlContext oc = new OgnlContext();
Object object = Ognl.getValue("1+2*(3+6)-5/2", oc, oc.getRoot());
System.out.println(object.toString());
第2个回答  2014-04-10
记得 好像 哪本书中 写过这样的问题,但是没有现成的函数 让你 使用 , 是自己 java代码 解析字符串
相似回答