下一行和扫描程序忽略 Java 中的行


Scanner s = new Scanner (System.in);
while(!s.nextLine().isEmpty()){
a.add(i, s.nextLine());
i++;
}
System.out.println(a.size());

我创建了一个 Arraylist,因为我正在将未知数量的字符串复制并粘贴到要扫描的 ide 中,这可能是行尾的问题。

我正在通过粘贴三行来测试它们。例如,以以下示例为例:

Hello
World
Again

我会将它们复制并粘贴,数组列表的大小将是 2,它将占据位置 0 的世界。

我自己的理论是,他 while 循环将第一行用于检查它是否为空,然后将第二行放入 Arraylist,检查第三行,将空白放入第二位置。

然后

以三行格式粘贴字符串,然后按一次 Enter 键,这可能会影响行尾。有没有人对正在发生的事情有任何见解?谢谢

您需要"捕获"要测试的行,而不是将其丢弃。 每次调用s.nextLine()都会读一行。

Scanner s = new Scanner (System.in);
String line;
while(!(line = s.nextLine()).isEmpty()){
    a.add(i, line);
    i++;
}
System.out.println(a.size());

或者正如其他人提到的,您可以使用s.hasNext()作为循环条件,如下所示:

Scanner s = new Scanner (System.in);
while(s.hasNext()) {
    a.add(i, s.nextLine());
    i++;
}
System.out.println(a.size());

最新更新