Java 为什么堆栈没有被推? 公共类Rpie{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 字符串rpie=input.nextLine(); StringTokenizer字符串=新的StringTokenizer(rpie); 堆栈=新堆栈(); while(string.hasMoreTokens()){ String tkn=String.nextToken(); 如果(tkn.等于(“+”)| | tkn.等于(“-”| | tkn.等于(“*”) ||tkn.等于(“/”){ 叠加推力(tkn); } } System.out.println(堆栈); } }

Java 为什么堆栈没有被推? 公共类Rpie{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 字符串rpie=input.nextLine(); StringTokenizer字符串=新的StringTokenizer(rpie); 堆栈=新堆栈(); while(string.hasMoreTokens()){ String tkn=String.nextToken(); 如果(tkn.等于(“+”)| | tkn.等于(“-”| | tkn.等于(“*”) ||tkn.等于(“/”){ 叠加推力(tkn); } } System.out.println(堆栈); } },java,data-structures,Java,Data Structures,为什么堆栈在读取+、-、*或/时不推动字符串 它会输出一个空堆栈。它会。标记器需要空格来分隔输入。比如: 1+2 将+推送到堆栈中。注意空格 是的。标记器需要空格来分隔输入。比如: 1+2 将+推送到堆栈中。注意空格 是的。标记器需要空格来分隔输入。比如: 1+2 将+推送到堆栈中。注意空格 是的。标记器需要空格来分隔输入。比如: 1+2 将+推送到堆栈中。注意空格 检查文档: public class Rpie { public static void main(String[] a

为什么堆栈在读取+、-、*或/时不推动字符串


它会输出一个空堆栈。

它会。标记器需要空格来分隔输入。比如:

1+2


+
推送到堆栈中。注意空格

是的。标记器需要空格来分隔输入。比如:

1+2


+
推送到堆栈中。注意空格

是的。标记器需要空格来分隔输入。比如:

1+2


+
推送到堆栈中。注意空格

是的。标记器需要空格来分隔输入。比如:

1+2


+
推送到堆栈中。注意空格

检查文档:

 public class Rpie {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String rpie = input.nextLine();
        StringTokenizer string = new StringTokenizer(rpie);

        Stack<String> stack = new Stack<String>();

        while (string.hasMoreTokens()) {
            String tkn = string.nextToken();
            if (tkn.equals("+") || tkn.equals("-") || tkn.equals("*")
                    || tkn.equals("/")) {
                stack.push(tkn);

            }

        }
        System.out.println(stack);

    }
}
这意味着如果你没有指定一个定界符,你需要一个默认的定界符,否则如果你给你的程序的字符串中没有一个,比如说你键入“1+2-3*4/5”,那么只有一个标记,它是“1+2-3*4/5”,但是如果你把空格字符放在这里,比如“1+2-3*4/5”,然后,您的程序将打印“[+,-,*,/]”,因为由于if,这些是您允许进入堆栈的唯一选项


我希望这对你来说足够清楚。

检查文档:

 public class Rpie {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String rpie = input.nextLine();
        StringTokenizer string = new StringTokenizer(rpie);

        Stack<String> stack = new Stack<String>();

        while (string.hasMoreTokens()) {
            String tkn = string.nextToken();
            if (tkn.equals("+") || tkn.equals("-") || tkn.equals("*")
                    || tkn.equals("/")) {
                stack.push(tkn);

            }

        }
        System.out.println(stack);

    }
}
这意味着如果你没有指定一个定界符,你需要一个默认的定界符,否则如果你给你的程序的字符串中没有一个,比如说你键入“1+2-3*4/5”,那么只有一个标记,它是“1+2-3*4/5”,但是如果你把空格字符放在这里,比如“1+2-3*4/5”,然后,您的程序将打印“[+,-,*,/]”,因为由于if,这些是您允许进入堆栈的唯一选项


我希望这对你来说足够清楚。

检查文档:

 public class Rpie {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String rpie = input.nextLine();
        StringTokenizer string = new StringTokenizer(rpie);

        Stack<String> stack = new Stack<String>();

        while (string.hasMoreTokens()) {
            String tkn = string.nextToken();
            if (tkn.equals("+") || tkn.equals("-") || tkn.equals("*")
                    || tkn.equals("/")) {
                stack.push(tkn);

            }

        }
        System.out.println(stack);

    }
}
这意味着如果你没有指定一个定界符,你需要一个默认的定界符,否则如果你给你的程序的字符串中没有一个,比如说你键入“1+2-3*4/5”,那么只有一个标记,它是“1+2-3*4/5”,但是如果你把空格字符放在这里,比如“1+2-3*4/5”,然后,您的程序将打印“[+,-,*,/]”,因为由于if,这些是您允许进入堆栈的唯一选项


我希望这对你来说足够清楚。

检查文档:

 public class Rpie {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String rpie = input.nextLine();
        StringTokenizer string = new StringTokenizer(rpie);

        Stack<String> stack = new Stack<String>();

        while (string.hasMoreTokens()) {
            String tkn = string.nextToken();
            if (tkn.equals("+") || tkn.equals("-") || tkn.equals("*")
                    || tkn.equals("/")) {
                stack.push(tkn);

            }

        }
        System.out.println(stack);

    }
}
这意味着如果你没有指定一个定界符,你需要一个默认的定界符,否则如果你给你的程序的字符串中没有一个,比如说你键入“1+2-3*4/5”,那么只有一个标记,它是“1+2-3*4/5”,但是如果你把空格字符放在这里,比如“1+2-3*4/5”,然后,您的程序将打印“[+,-,*,/]”,因为由于if,这些是您允许进入堆栈的唯一选项


我希望这对你的伴侣来说足够清楚。

我建议你从打印循环中的信息开始——例如,
if(…){
System.out.println(“got”+tkn);
`stack.push(tkn)59595959