java – 赋予括号优先权

我是java的新手,我正在构建一个计算器,它需要一个等式并对其进行评估.

我正在使用Scanner方法获取输入,但这意味着我的输入是扫描仪类型.我应该怎么做这个输入,以便我可以评估它?一旦我可以评估它,我怎样才能优先考虑括号?

例如,对于等式(5 *(4 3))* 2,我想首先评估(4 3)的程序,然后将它乘以4,然后将所有这些乘以2.

非常感谢.

解决方法:

你需要的是Dijkstra的Shunting Yard Algorithm.这将in-fix数学符号转换为修复后符号,它巧妙地排除了运算符优先级和括号的所有问题,因为后修复符号不需要其中任何一个.*页面在C中有一个完整的例子,可以翻译成Java.

上一篇:jQuery的页面载入


下一篇:Python计算器除以零/取消否定.诠释.崩溃的程序