如何在JAVA中将多个int用户输入存储在一个堆栈中
我对编程非常陌生,我不确定我一直在做什么。我正在创建一个程序,允许我们的用户在一行中输入多个int值,并将其存储到堆栈中 比如说 输入数字:123456 但我发现唯一的扫描仪只能得到第一个数字。我怎样才能在一行中获取所有数字并将其存储在堆栈中 这是到目前为止我的代码如何在JAVA中将多个int用户输入存储在一个堆栈中,java,stack,java.util.scanner,Java,Stack,Java.util.scanner,我对编程非常陌生,我不确定我一直在做什么。我正在创建一个程序,允许我们的用户在一行中输入多个int值,并将其存储到堆栈中 比如说 输入数字:123456 但我发现唯一的扫描仪只能得到第一个数字。我怎样才能在一行中获取所有数字并将其存储在堆栈中 这是到目前为止我的代码 import java.util.Scanner; import java.util.Stack; public class StackPractice { public static void main(Str
import java.util.Scanner;
import java.util.Stack;
public class StackPractice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of elements to place on the stack [1-10]:");
int stackSize = sc.nextInt();
Stack <Integer> stack = new Stack<>();
System.out.println("Enter " + stackSize + " element(s):");
for( int i = 0; i < stackSize;i++){
while(sc.hasNextInt() && i < stackSize){
stack.push(sc.nextInt());
int number = sc.nextInt();
stack.push(number);
}
}
System.out.println(stack);
}
}
import java.util.Scanner;
导入java.util.Stack;
公开课{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入要放置在堆栈上的元素数量[1-10]:”;
int stackSize=sc.nextInt();
堆栈=新堆栈();
System.out.println(“输入“+stackSize+”元素):”;
对于(int i=0;i
您的问题在循环中,而for循环也是不必要的。我对你的代码做了一些修改
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of elements to place on the stack [1-10]:");
int stackSize = sc.nextInt();
Stack <Integer> stack = new Stack<>();
System.out.println("Enter " + stackSize + " element(s):");
int i = 0;
while(i < stackSize){
int number = sc.nextInt();
stack.push(number);
i++;
}
System.out.println(stack);
}
请在问题中填写所有相关信息,并清楚说明您的问题。什么(不)起作用?对不起,先生,我的问题是我不知道如何在堆栈中存储来自扫描仪的多个int输入。对于那些不知道您的任务的人,您仍然不清楚。它应该如何工作?至于预期的输出,请在问题中编辑它,而不是在外部链接中。问题中的代码现在有一些明显的问题:有一个
for
循环和一个while
循环嵌套在里面,在里面有两个调用sc.nextInt()
。while
循环看起来只有在键入非数字的内容时才会结束。这看起来很像复制/粘贴/编辑错误。我建议您在阅读后尝试打印出数字
,并在数字添加后打印出堆栈
,希望这将有助于您了解您的程序。谢谢您的回复,先生,非常感谢。很抱歉没有说清楚,但我的问题是我想在一行中存储多个int值并将其存储在堆栈中。它也是这样工作的。只需输入中间有空格的值。检查输出。我做了一次编辑,将值放在一行中。代码还是一样的欢迎你。请将答案标记为已接受
Enter the number of elements to place on the stack [1-10]:
4
Enter 4 element(s):
4 3 3 4
[4, 3, 3, 4]