如何使用表示+ - * /%的字符执行算术运算

时间:2014-03-18 20:12:09

标签: java

我试图创建一个简单的自然语言计算器,并且目前已设法将所有操作数转换为双打和运算符到字符' +',' - &#39 ;,' *',' /','%'。

但是,我想使用正确的操作顺序来评估表达式,为此我可以在计算表达式时利用Java的自然操作顺序。有没有办法计算这种包含字符操作数的表达式?我在想,也许我的程序可以写一些临时的java类,编译它并运行它来评估表达式,但这似乎有点过分。必须有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

没有办法使用“Java的自然操作顺序”,因为这是由编译器实现的,并且您在运行时工作。您可以使用ScriptEngine为您完成整个计算。否则你必须实现你自己的表达式解析器,使用说递归下降,这很简单,或者是Dijkstra的Shunting-yard算法。