簡體   English   中英

Java Scanner拋出NoSuchElementException

[英]Java Scanner throws a NoSuchElementException

我正在學習Java,通過這樣做,我寫了一個簡單的猜謎游戲。 現在我試圖通過添加其他功能來改進它,但我堅持嘗試使其更“模塊化”,即:使用更多方法與長main()方法。

我有這個:

while(!guessed) {
    System.out.println("Guess a number between 1 and 1000.");
    guessedNum = Integer.parseInt(input.nextLine());
    numCheck(guessedNum);
}
timeEnd = System.currentTimeMillis();
input.close();
System.out.println("Seconds to guess: " + (timeEnd - timeStart)/1000);

哪個工作得很好,但如果我嘗試為這個“猜數”做一個單獨的方法:

public static int guessNum() {
    System.out.println("Escriba un numero entre 1 y 1000.");
    Scanner input = new Scanner(System.in);
    guessedNum = Integer.parseInt(input.nextLine());
    input.close();
    return guessedNum;
}

它會引發以下錯誤:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at game.Guess.guessNum(Guess.java:40)
    at game.Guess.start(Guess.java:28)
    at game.Game.main(Game.java:21)

我一直在嘗試使用分隔符和nextLine()來玩,但它始終是相同的錯誤。 此外,我已經嘗試使用eclipse進行調試,但是當它轉到nextLine時,它會跳轉到一個頁面,其中顯示Source not found。

任何線索? 如果需要,我可以修改我的問題。

您在此行中關閉Scanner

input.close();

這也關閉了System.in 因此,下次您從同一台掃描儀讀取時,您將收到此錯誤。

暫無
暫無

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

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