ArrayList扫描仪输入帮助Java

时间:2018-07-16 18:33:37

标签: java arraylist

我试图编写一个代码,在其中对给定的数字列表进行排序,而我试图使用ArrayList进行编码。我正在使用while循环,以允许重复输入。这是我的代码:

import java.util.Scanner; 
import java.util.ArrayList;

public class sortinggg {

    public static Scanner keyboard = new Scanner(System.in);
    public static ArrayList<Integer> number = new ArrayList<Integer>();

    public static void main (String [] args) {

        int count= 0;

        System.out.println("Enter your numbers.");

        while (keyboard.hasNextInt()); {
            number.add(keyboard.nextInt()); 
        }

现在整数无关紧要,因为我仅在对列表进行排序时使用它。

问题在于,即使输入了字符串(例如),输入数字后,程序也不会继续执行下一行代码。我在这里想念什么吗?

P.S。我很疲倦地查找以前在该主题上提出的问题,但是建议的解决方案都不适合我。谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

尝试一下:

import java.util.ArrayList;
import java.util.Scanner;

public class Main
{
    public static void main(String args[])
    {
        Scanner keyboard = new Scanner(System.in);
        ArrayList<Integer> number = new ArrayList<Integer>();

        System.out.println("Enter your numbers:");

        while (keyboard.hasNextInt()) {
            number.add(keyboard.nextInt()); 
        }
    }
} 

修改:

  1. while (keyboard.hasNextInt());中,删除semicolon(;)

在这里while loop会一直向arraylist添加值,直到您提供整数值为止。

答案 1 :(得分:1)

首先在;之后的while是错误的。它不允许您执行身体。然后,您将如何跳过循环。您可以要求最终用户输入一些特殊值并使用它来打破循环。更正的版本如下。

public static void main(String[] args) {
        int count = 0;

        System.out.println("Enter your numbers or -1 to skip.");

        while (keyboard.hasNextInt()) {
            int num = keyboard.nextInt();
            if (num == -1) {
                break;
            }
            number.add(num);

        }

        System.out.println(number);

    }