Java 如何解析以字符串形式给出的数学表达式并返回数字?

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(我怀疑这是一个数学语法的起点),然后实际自己编译/解释该语句。

以上是 Java 如何解析以字符串形式给出的数学表达式并返回数字? 的全部内容, 来源链接: utcz.com/qa/417064.html

回到顶部