簡體   English   中英

Nextline和掃描程序是否忽略Java中的行?

[英]Nextline and scanner ignoring lines in 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

我將其復制並粘貼到其中,Arraylist的大小將為2,並且將是World,它將占據位置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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM