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
我会复制并粘贴它们,Arraylist的大小将是2,它将是占据0位的世界。
我自己的理论是他在while循环中取第一行来检查它是否为空,然后第二行被放入Arraylist中,第三行被检查并且空白被放入第二个位置。
然后以三行的格式粘贴字符串,然后按Enter键一次,这可能会影响行尾。有没有人对正在发生的事情有任何见解?谢谢,
答案 0 :(得分:1)
你需要"捕获"要测试的线而不是丢弃它。每次拨打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());