This question already has answers here:
How to evaluate a math expression given in string form?
(25个答案)
4年前关闭。
Java中有没有一种方法可以从以下数学表达式获得结果:
另一方面,解析算术表达式的最佳方法是什么?
您将要确保评估的字符串来自受信任的来源,并采取通常的预防措施,否则,它将立即起作用。
如果您想采用更复杂(但更安全)的方法,则可以使用ANTLR(我怀疑它是以数学语法为起点),然后实际自己编译/解释该语句。
(25个答案)
4年前关闭。
Java中有没有一种方法可以从以下数学表达式获得结果:
String code = "5+4*(7-15)";
另一方面,解析算术表达式的最佳方法是什么?
最佳答案
您可以将其传递给BeanShell bsh.Interpreter
,如下所示:
Interpreter interpreter = new Interpreter();
interpreter.eval("result = 5+4*(7-15)");
System.out.println(interpreter.get("result"));
您将要确保评估的字符串来自受信任的来源,并采取通常的预防措施,否则,它将立即起作用。
如果您想采用更复杂(但更安全)的方法,则可以使用ANTLR(我怀疑它是以数学语法为起点),然后实际自己编译/解释该语句。
10-05 23:15