我制作了一个应用程序,允许将实数(包括负数)从中缀表达式转换为后缀表达式。它工作得很好,除了我在第一个数字上加上一个负数,然后我在另一个数字上加上一个负数。例如-1 - 2
或-2 + 8 - 9
。它显示-1-2
和-2 8-9 +
。应该是-1 2 -
和-2 8 + 9 -
。当标志是 时,这肯定是一个问题-
。当输入字符为“-”时,这是我的代码的一部分。
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
if (ch == '-') {
if ((ch == input.charAt(0)) || (input.charAt(j - 1) == '(')
|| (input.charAt(j - 1) == '-'))
temp = temp + ch;
else {
output = output + temp + " ";
temp = "";
gotOper(ch, 1);
}
}
else if ..
...
}
当应用程序找到-
并且它位于第一个input
或之后(
或之后,-
所以它是一个负数,我将它放入一个临时变量中。当它在 0 和 9 之间或者它是.
时,同样的事情。否则,当它是和操作数时,我将其放入其中temp
并output
使用堆栈进行操作。我无法显示整个代码,它很长!有人能帮助我吗?
编辑:我这样做是input = input.replaceAll("\\s+", "");
为了删除所有空格