前缀Postfix Infix Java表达式求值程序

时间:2012-01-17 01:14:09

标签: java expression evaluation

我一直在研究java中的表达式评估器,并且出于挫折感,我也来这里询问它。我现在已经重写了至少15次,但每次都无济于事。

基本上我需要在前缀,中缀或后缀中使用String并将其计算为整数。表达式可以使用java中包含的任何算术运算符。

我遇到的问题: - 当我尝试解析表达式树或将它们全部解析为postfix时,我遇到了单项式运算符的问题。 - 我无法将它识别为一个数字作为一个数字,随后它会破坏整个树或它绕数字切换。 - 我无法让程序找出正确放下括号的位置,我无法通过堆栈来识别括号的结束和结束。

所以基本上程序需要这样做:

任何任意数字A B C D E F

在前缀postfix和infix中评估:

A-- + + + B - - C * D ++ / E%F

对于任意位A B C D E F G和数字n

在前缀,后缀和中缀中进行评估: A& B | C ^ ~D

n>>甲

n<<甲

我的教科书没有多大帮助,也没有我订购的书籍,我真的无法理解如何做到这一点,请帮助,即使只是解释如何做到这一点对我来说也足够好。感谢您的帮助:D

1 个答案:

答案 0 :(得分:1)

假设您已成功标记了所有标识符,运算符和文字,下一步将是阅读有关递归下降解析器的内容。对于这种情况,您可以手动编写一个,而不是试图弄清楚如何使用解析器生成器。