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());