0

我最近开始熟悉一些基本的 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)))#

所以似乎只有括号妨碍了。我的问题是:

  • 我将如何最好地处理括号?
  • 就像从一开始就删除它们一样简单吗?
  • 一元运算符是否有任何需要额外特殊情况的影响?
4

0 回答 0