コマンドライン Java アプリケーションを作成しています。端末の入出力を処理するクラスがあります。はい/いいえ (y/n) で簡単に質問したいと思います。これは私のコードです:
public boolean yn(String prompt) {
// ask a yes/no question
out(prompt);
try {
while(true) {
char result = (char) br.read();
out("\n");
if( ( (Character) Character.toLowerCase(result) ).toString().equals("y") ) {
return true;
} else if( ( (Character) Character.toLowerCase(result) ).toString().equals("n") ) {
return false;
}
// not y or n
out(Messages.informYN);
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
brは次のように設定された BufferedReader です。
br = new BufferedReader(new InputStreamReader(System.in));
outは単純にテキストを出力します
System.out.print(text);
問題は、入力が与えられていない場合、br.read() が最初に新しい行をすぐに返すことです。
私は Java にかなり慣れていないので、お手柔らかにお願いします。