具有一元运算符和括号的RPN

时间:2014-08-03 09:48:43

标签: java string rpn

我最近开始熟悉一些基本的Java编程,并且正在尝试由导师为我完成一个任务集。基本上,程序意味着接受一个可能包含任何运算符+, * and #的等式(我们没有被告知究竟是什么#表示,只是它是一个优先级高于*的一元运算符);并将其转换为RPN,以便稍后使用LOAD和EXEC命令进行解释并转换为基本机器代码(但以后的内容)。

我已经创建了基本转换函数,它似乎可以很好地处理A + 6等基本方程式,但是当遇到括号时它似乎有问题。

例如,如果我将以下等式传递给它:

 A+6,
    A+(B*2)
    (((#9)*C)+D)+E
    (((#1)))

我得到以下结果:

  A6+
    A(B2)*+
    (((9)#C)*D)+E+
    (((1)))#

所以看起来只有括号妨碍了。 我的问题是这些:

  • 我怎样才能最好地处理括号?
  • 是否只是从一开始就删除它们一样简单?
  • 一元运算符是否会产生任何需要额外特殊情况的影响?

0 个答案:

没有答案