我遇到這個問題很多。當我多次使用掃描儀時,它不會從用戶那裏獲得輸入。Java多次使用掃描器
Scanner scan = new Scanner(System.in);
System.out.println("1---");
int try1 = scan.nextInt();
System.out.println("2---");
int try2 = scan.nextInt();
System.out.println("3---");
String try3 = scan.nextLine();
System.out.println("4---");
String try4 = scan.nextLine();
當運行該代碼,導致它:
1 ---
2 ---
3 ---
4 ---
aa
正如您所看到的,它跳過了第3個輸入。爲什麼發生這種情況?我通過使用新的掃描儀解決了這個問題,有時我有5-6個不同的掃描儀,看起來很複雜。 另一個問題是:有一個錯誤「資源泄漏:掃描從不關閉」。我很困惑。
您鍵入3「資源泄漏掃描永遠不會關閉」 ,然後是2,然後是1,然後是。 'int'是321。仍在等待處理。然後第一個'nextLine'調用讀取,直到下一個,但之前您已經輸入了,所以它返回該行(不包含任何內容)。考慮如果您鍵入「123 456 abc def 」 –
immibis
2014-11-06 12:27:03
會發生什麼情況,警告「資源泄漏:掃描永遠不會關閉」。您需要關閉掃描。 scanner.close(); – 2014-11-06 12:27:54
[Java - Scanner - 跳過我最後一個nextLine()請求]的可能重複(http://stackoverflow.com/questions/24770531/java-scanner-skips-over-my-last-nextline-request) – 2014-11-06 12:39:48