在循环中时next()和nextLine()之间的区别

时间:2018-11-15 20:32:33

标签: java methods

我正在使用数组,我想创建一个列表,以便用户可以为其设置长度值,然后用户还可以向其设置的长度添加一些String值二重奏。我希望程序向我展示用户输入给用户的列表(只是练习),我发现next()nextLine()的不同用法是nextLine()方法无法正常工作,因为我想添加尽可能多的方法我想对Array进行字符串操作。这是我在想什么:

System.out.println("Welcome to addingCourse wizard :)");
        System.out.println("Please enter the amount of your course: ");
        int z = input.nextInt();
        String[] course = new String[z];

        for (int i = 0; i < course.length ; i++) {

            course[i] = input.nextLine();
        }
        System.out.println("Ok. Here is your list...");

        for (int i = 0; i < course.length; i++) {

            System.out.println(course[i]);
        }

问题是nextLine()不允许我们在数组中添加项目。例如,如果您希望列表为100,尽管next()仅允许输入99个项目方法允许course.length个项目并打印所有项目

1 个答案:

答案 0 :(得分:0)

看看这些行

    int z = input.nextInt();
    String[] course = new String[z];

    for (int i = 0; i < course.length ; i++) {

        course[i] = input.nextLine();
    }

每当您按下 enter 键时,都会创建一个新行 / n 字符。一旦您在第一行读取了整数,nextInt就不会消耗该char。在打印行之后,请仔细查看输出,第一行是空行。

要使用此新行,请在完成读取int之后立即添加另一个nextLine()。

int z = input.nextInt();
input.nextLine(); //Consumes the new line character