[英]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.