我正在使用扫描器类从命令行中捕获用户输入(仅限字符串),作为我的先前问题的替代方案。
以下内容似乎运行良好,但第二个条件语句未能正确地捕获空白行。例如,当我按回车键时,这应该被捕获为空行,并且第二个条件应该为真。然而,每次都会在控制台上显示一个新的空行,如果我一直按回车键,整个控制台会“向上滚动”,而不是条件中的逻辑。
是否有一种正确的方式可以使用扫描仪从命令行中捕获空输入?(某人只需按回车键,或者连续按空格几次然后按回车键)
感谢任何建议
以下内容似乎运行良好,但第二个条件语句未能正确地捕获空白行。例如,当我按回车键时,这应该被捕获为空行,并且第二个条件应该为真。然而,每次都会在控制台上显示一个新的空行,如果我一直按回车键,整个控制台会“向上滚动”,而不是条件中的逻辑。
是否有一种正确的方式可以使用扫描仪从命令行中捕获空输入?(某人只需按回车键,或者连续按空格几次然后按回车键)
感谢任何建议
Machine aMachine = new Machine();
String select;
Scanner br = new Scanner(System.in);
while(aMachine.stillInUse()){
select = br.next();
if (Pattern.matches("[rqRQ1-6]", select.trim())) {
aMachine.getCommand(select.trim().toUpperCase()).execute(aMachine);
}
/*
* Ignore blank input lines and simply
* redisplay current status -- Scanner doesn't catch this
*/
else if(select.trim().isEmpty()){
aMachine.getStatus();
/*
* Everything else is treated
* as an invalid command
*/
else {
System.out.println(aMachine.badCommand()+select);
aMachine.getStatus();
}
}