Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带实数的中缀到后缀(包括负数)_Java - Fatal编程技术网

Java 带实数的中缀到后缀(包括负数)

Java 带实数的中缀到后缀(包括负数),java,Java,我制作了一个应用程序,可以将实数(包括负数)从中缀表达式转换为后缀表达式。除了在第一个数字上加一个负数,然后在另一个数字上加一个负数之外,它工作得很好。例如-1-2或-2+8-9。它显示-1-2和-2 8-9+。它应该是-12-和-28+9-。当符号为-时,这肯定是个问题。当输入字符为“-”时,这是我代码的一部分 for (int j = 0; j < input.length(); j++) { char ch = input.charAt(j); if (ch == '

我制作了一个应用程序,可以将实数(包括负数)从中缀表达式转换为后缀表达式。除了在第一个数字上加一个负数,然后在另一个数字上加一个负数之外,它工作得很好。例如
-1-2
-2+8-9
。它显示
-1-2
-2 8-9+
。它应该是
-12-
-28+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 ..
    ...
    }
for(int j=0;j
当应用程序找到
-
并且它位于
输入的第一个
或之后的
-
所以它是一个负数,我把它放进一个临时变量。当它在0和9之间或
时,同样的事情。否则,当它是和操作数时,我把
temp
中的那个放进
输出
中,我对堆栈进行操作。我不能显示整个代码,它很长!有人能帮忙吗请告诉我好吗


编辑:我做了这个
input=input.replaceAll(“\\s+”,”);
来删除所有空白这部分
(ch==input.charAt(0))
在第二个if语句中应该替换为
(j==0)
。否则,如果输入也以一个
'-'
开头,则每当
ch='-'
时,它将返回true。你的意思是它将中缀转换为后缀吗?是的!对不起,我没有过一个愉快的夜晚哈你救了我的命;你让我开心了!谢谢!