如何暂停" for"在Java中,以便我可以输入一些文本

时间:2014-10-14 14:54:05

标签: java for-loop

我需要解决一个问题,当输入整数时,这是用户想要在此输入旁边输入的行数(一些句子),可以从文本中理解,如下所示:

  

第一行输入包含一个整数N,表示   输入中的行数。接下来是N行输入   文本。

我写了以下代码:

public static void main(String args[]) {

    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    String lines[] = new String[n];
        for(int i = 0; i < n; i++){
            System.out.println("Enter " + i + "th line");
            lines[i] = scan.nextLine();
        }
    }
}

与该计划的互动:

5(The user inputted 5)
Enter 0th line(Program outputted this)
Enter 1th line(Doesn't gave time to input and instantly printed this message)
Hello(Gave time to write some input)
Enter 2th line(Program outputted this)
How(User input)
Enter 3th line(Program outputted this)
Are(User input)
Enter 4th line(Program outputted this)
You(User input)
  • 问题是什么?我无法输入第0行。
  • 建议一种更好的方法来输入n个行,其中n是用户提供给字符串数组的。

2 个答案:

答案 0 :(得分:7)

nextInt()的调用是将第0次调用的新行留给nextLine()消费。

另一种方法是始终使用nextLine()并解析输入字符串中的行数。

开始关注样式和代码格式。它提高了可读性和理解力。

public static void main(String args[]) {
    Scanner scan = new Scanner(System.in);
    int n = Integer.parseInt(scan.nextLine());
    String lines[] = new String[n];
    for (int i = 0; i < n; i++) {
        System.out.println("Enter " + i + "th line");
        lines[i] = scan.nextLine();
    }
}

答案 1 :(得分:-1)

我不知道你会更好地考虑什么: 尝试更改

System.out.println("Enter " + i + "th line");

System.out.print("Enter " + i + "th line:");

让它看起来更好。

输入行的更好方法是继续读取输入行,直到看到特殊的终止字符串。 使用ArrayList存储行,然后您不需要事先声明大小