突っ込みどころは多いのですが…
System.in
をclose
した場合,そのプロセスでは再度開けなくなります.
in
のオープンとクローズのみwhile
の外に出してください.
Scanner in = new Scanner(System.in);
while() { /* ... */ }
in.close();
それから,以下のwhile条件がfalseになることはありません.
while( input != "" ) {
Stringは一般に演算子==
で比較できません.代わりにString.equals()
を使用します.
String anecdote = in.next();
Scanner.next()
は改行文字を排除しません.このため入力結果が空文字列になることはありません(シェルによって強制的にストリームを終了することができますが,例外が発生します).
代わりにScanner.nextLine()
を使用して改行を取り除いてください.
while(!input.equals("")){
String anecdote = in.nextLine();
/*...*/
}
2Like