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)59595959