前缀后缀中缀Java表达式计算器

前缀后缀中缀Java表达式计算器,java,expression,evaluation,Java,Expression,Evaluation,我一直在用java开发一个表达式计算器,出于沮丧,我也来到这里询问这个问题。到目前为止,我至少重写了15次,每次都没有用 基本上,我需要获取前缀、中缀或后缀中的字符串,并将其计算为整数。表达式可以使用java中包含的任何算术运算符 我遇到的问题是: -当我试图解析到表达式树或将它们全部解析到后缀时,我遇到了单项式运算符的问题。 -我无法让它将一个多位数的数字识别为一个数字,然后它会破坏整个树,或者它会在数字之间切换。 -我无法让程序找出正确放置括号的位置,也无法让它使用堆栈来标识括号的结尾和结束

我一直在用java开发一个表达式计算器,出于沮丧,我也来到这里询问这个问题。到目前为止,我至少重写了15次,每次都没有用

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

我遇到的问题是: -当我试图解析到表达式树或将它们全部解析到后缀时,我遇到了单项式运算符的问题。 -我无法让它将一个多位数的数字识别为一个数字,然后它会破坏整个树,或者它会在数字之间切换。 -我无法让程序找出正确放置括号的位置,也无法让它使用堆栈来标识括号的结尾和结束

因此,基本上程序需要这样做:

对于任意数A B C D E F

在前缀后缀和中缀中求值:

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

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

在前缀、后缀和中缀中求值: A&B|C^~D

n>>A


n假设您已经成功地标记了所有标识符、运算符和文本,下一步将是阅读一些关于递归下降解析器的内容。您可能可以为这种情况手工编写一个,而不是试图找出如何使用解析器生成器。

是否有任何地方可以让我了解递归下降解析。为此,我认为这一定是一个非常常见的计算机科学项目=/维基百科的文章是一个良好的开端: