我正在编写一个命令行 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相当陌生,所以请放轻松。