如何在 JAVA 中将多个 int 用户输入存储到 STACK 中

How to Store multiple int user input in one into STACK in JAVA

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

例如

输入数字:1 2 3 4 5 6

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

到目前为止,这是我的代码

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);            
    }
}

你的问题在于你的 while 循环,而且 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);            
}

输出

 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]