我试图创建一个简单的自然语言计算器,并且目前已设法将所有操作数转换为双打和运算符到字符' +',' - &#39 ;,' *',' /','%'。
但是,我想使用正确的操作顺序来评估表达式,为此我可以在计算表达式时利用Java的自然操作顺序。有没有办法计算这种包含字符操作数的表达式?我在想,也许我的程序可以写一些临时的java类,编译它并运行它来评估表达式,但这似乎有点过分。必须有一种更简单的方法吗?
答案 0 :(得分:2)
没有办法使用“Java的自然操作顺序”,因为这是由编译器实现的,并且您在运行时工作。您可以使用ScriptEngine为您完成整个计算。否则你必须实现你自己的表达式解析器,使用说递归下降,这很简单,或者是Dijkstra的Shunting-yard算法。