gpt4 book ai didi

java - 实数的中缀到后缀(包括负数)

转载 作者:行者123 更新时间:2023-12-02 07:10:01 25 4
gpt4 key购买 nike

我制作了一个应用程序,允许将实数(包括负数)从中缀表达式转换为后缀表达式。它工作得很好,除了我在第一个数字上输入负数然后再输入减去另一个数字的情况。例如-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 之间或者它是 . 时,同样的事情。否则,当它是 and 操作数时,我把它放在 中tempoutput 中,我对堆栈进行操作。我无法显示整个代码,它很长!有人可以帮助我吗?

编辑:我这样做了 input = input.replaceAll("\\s+", ""); 来删除所有空格

最佳答案

第二个 if 语句中的这部分 (ch == input.charAt(0)) 应替换为 (j == 0)。否则,如果输入也以 '-' 开头,则每当 ch == '-' 时,它将返回 true。

关于java - 实数的中缀到后缀(包括负数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com