如何将用户输入值添加到arraylist

时间:2017-11-20 18:14:52

标签: java arraylist user-input

我正在尝试创建一个获取用户值并将它们添加到ArrayList的循环。 我试过这个并且它有效,但唯一的问题是我必须输入一个字母或任何字符串类型才能停止循环并获取值。

如何设置循环以根据需要添加任意数量的用户输入,而无需用户通过输入stop关键字来停止循环?

我不允许使用解析功能,也不允许用户询问他们将输入多少int。

public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    ArrayList<Integer> userInput = new ArrayList<Integer>();
    System.out.print("enter integers: ");
    while(in.hasNextInt()){
        userInput.add(in.nextInt());
    }


    System.out.print(userInput.get(1));
}

1 个答案:

答案 0 :(得分:-1)

您的问题是您正在使用in.hasNextInt(),只有在用户提供的某些输入不是整数时才会停止。 如果您希望用户只提供一个输入,请删除while循环,您就可以了。如果您希望用户提供多个输入,我建议您首先询问他想要提供多少数字,然后再从扫描仪中读取这么多次。

贝娄我向你提供了我的建议。

完整代码:

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    System.out.println("Enter the size:");

    int arrSize = reader.nextInt();
    ArrayList<Integer> userInput = new ArrayList<>(arrSize);

    for(int i = 0; i<arrSize; i++) {

        System.out.println("Enter integer on index "+i+":");
        int arrNum = reader.nextInt();
        userInput.add(arrNum);
    }

    reader.close();        
    System.out.println(userInput.toString());
}