私は、単一の行に整数のリストを入力するユーザーが必要なので、私はこれを書いた:Scannerを使用して1行から整数リストを読み取るときに無限ループが発生するのはなぜですか?
public static Integer[] readIntegers()
{
Scanner input = new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
do list.add(input.nextInt());
while(input.hasNextInt());
return list.toArray(new Integer[list.size()]);
}
をそれは永遠にループし続けます!スキャナに数字がない場合、hasNextInt()
はfalse
を返すと思われますか?前の方法を修正するにはどうすればよいですか?または、代わりにnextLine()
を使用して文字列を吐き出す必要がありますか?
http://stackoverflow.com/questions/1794281/java-infinite-loop-using-scanner-in-hasnextint –
の複製のように見えるDIdあなたはstdinにEOFを送りますか? [ctrl + z in windows、ctrl + d in linux] – amit
プログラム全体を 'ctrl + z 'しないでしょうか? –