Я использую класс сканера для захвата ввода пользователем из командной строки (только строки) в качестве альтернативы моему предыдущему question.Как поймать пустой ввод со сканирующим классом в java
Следующее, кажется, работает нормально, за исключением того, что пустые строки не пойманы, как следует из второго условного. Например, когда я нажимаю enter, это должно быть записано как пустая строка, а второе условие должно быть истинным. Однако вся новая пустая строка отображается на консоли каждый раз, при этом вся консоль «прокручивается» вверх, если я продолжаю входить, а не логику условного.
Есть ли способ поймать пустой ввод из командной строки с помощью сканера? (Кто-то бил только войти, или ударить пространство в несколько раз, а затем ввести)
Спасибо за любые советы
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();
}
}
Я также надеялся спросить, если это правильный способ чтения пользовательского ввода из командной строки. Какое общее упражнение я должен обрабатывать, например? Спасибо за любые объяснения. – denchr
Чтобы быть в курсе, ни один из этих кодов не будет читаться из командной строки - ваши аргументы находятся в аргументах main(). Но вы говорите о стандартном вводе. –