2016-10-07 7 views
0

私はメニューを表示し、switch文で使用するために入力するようにユーザに指示します。すべてがメソッド内に含まれています。ただし、プログラムは例外を生成します。印刷メニュー。例外java.util.NoSuchElementExceptionが見つかりません

Exception in thread "main" java.util.NoSuchElementException: No line found 
at java.util.Scanner.nextLine(Scanner.java:1585) 
at AuthoringAssistant.printMenu(AuthoringAssistant.java:49) 
at AuthoringAssistant.main(AuthoringAssistant.java:64) 

ここでは、問題の原因と思われるコードスニペットを示します。

private static char printMenu(){ 
    Scanner scnr = new Scanner(System.in); 
    System.out.println("\nMENU"); 
    System.out.println("c - Number of non-whitespace characters"); 
    System.out.println("w - Number of words"); 
    System.out.println("f - Find text"); 
    System.out.println("r - Replace all !'s"); 
    System.out.println("s - Shorten spaces"); 
    System.out.println("q - Quit"); 

    System.out.println("\nChoose an option: "); 


    char choice=scnr.nextLine().charAt(0);//line 49 
    return choice; 
} 

関数が呼び出され、メインのどこかダウン:

while(endMenu == false){ 
    char ch =printMenu();//line 64 

    switch(ch){ 

をありがとうございます任意のフィードバックを提供することができれば!

+0

現在のコードではスキャナに問題はないようです。これがいつ起こっているかについて、より多くの情報を提供できますか? – Brion

答えて

0

(申し訳ありませんが、私がコメントするのに十分な担当者を持っていない、これはコメントでなければなりません。)

あなたは例外を取得しないとき?あなたは入力をキー入力するのを待っていますか?プロンプトでどんな価値がありますか?

charAt()をnextLine()で呼び出すと、例外がスローされる可能性があります。これを試すことができますか?

String choiceString = scnr.nextLine(); 
char choice = choiceString.charAt(0); 
return choice; 
+0

この問題は、ch = printMenu();メインで呼び出されます。プログラムはメニューを出力し、ユーザーに入力を促します。ユーザーが文字を入力すると、例外が表示されます。 私はあなたのソリューションJerin Josephを試しましたが、例外はscnr.nextline()を指しています。 statmentおよびch = printMenu(); – scubasteve7

+0

ところで私はこれをZybooksの教授ツールを通して実行しています。 – scubasteve7

+0

@ scubasteve7コードに間違いはありません。問題を引き起こしているツールを使用してこれが実行されている可能性があります。このツールはおそらく入力ストリームを正しく読み取っていない可能性があります。 –

関連する問題