簡體   English   中英

非終止Java程序

[英]Non-terminating Java program

我有這個與Java輸入相關的問題。 我正在UVAToolkit中解決某些情況,但是行輸入需要System.in中的一些問題。 根據下面的這些代碼,一旦按下鍵,如何解決問題? 樣本輸入/輸出如下所示。

Scanner scanner = new Scanner(System.in);
String line;
while((line = scanner.nextLine()) != null) {
    System.out.println(line);
}
System.out.println("done");

輸入樣例:

1 10
10 100
100 1000

樣本輸出:

1 10
10 100
100 1000
done

提前致謝。

要結束輸入,您應該先輸入ctrl + d ,否則,scanner.nextLine scanner.nextLine()不會返回null,而是掛起。

例如,如果您想在輸入單詞quit應用程序,則可以執行以下操作:

Scanner scanner = new Scanner(System.in);
String line;
while((line = scanner.nextLine()) != null && !line.equalsIgnoreCase("quit")) {
    System.out.println(line);
}
System.out.println("done");

使用STOP\\n類的哨兵值或關閉流。 對於Windows(我猜),請按ctrl + z ;對於Linux,請按ctrl + d ,以關閉流。

不要檢查空輸入,而是檢查一個空字符串。 這樣,您只需按回車鍵就可以終止。

while(!(line = scanner.nextLine()).equals(""))

您可以決定一個特殊的字符串來結束循環,然后檢查這個特殊的字符串。 例如:

while((line = scanner.nextLine()) != null) {
    if (line.equals("quit") break;
    System.out.println(line);
}
System.out.println("done");

嘗試檢查空行而不是null:

while((line = scanner.nextLine()).isEmpty()) {
    System.out.println(line);
}

暫無
暫無

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

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