如何在JAVA中将多个int用户输入存储在一个堆栈中

如何在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

我对编程非常陌生,我不确定我一直在做什么。我正在创建一个程序,允许我们的用户在一行中输入多个int值,并将其存储到堆栈中

比如说

输入数字:123456

但我发现唯一的扫描仪只能得到第一个数字。我怎样才能在一行中获取所有数字并将其存储在堆栈中

这是到目前为止我的代码

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]