我制作了一个应用程序,允许将实数(包括负数)从中缀表达式转换为后缀表达式。它工作得很好,除了我在第一个数字上加上一个负数,然后我在另一个数字上加上一个负数。例如-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+", "");为了删除所有空格