gpt4 book ai didi

java - Nextline 和扫描仪忽略 Java 中的行?

转载 作者:行者123 更新时间:2023-12-02 13:38:11 25 4
gpt4 key购买 nike

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,并且 World 将占据位置 0。

我自己的理论是,while循环首先检查第一行是否为空,然后将第二行放入Arraylist中,检查第三行,将空白放入第二个位置。

然后是三行格式的字符串粘贴,然后按一次回车,可能会影响行尾。有人知道发生了什么事吗?谢谢,

最佳答案

您需要“捕获”要测试的线路而不是将其丢弃。每次调用 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());

关于java - Nextline 和扫描仪忽略 Java 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com