이전 question의 대안으로 스캐너 클래스를 사용하여 명령 줄 (문자열 만)에서 사용자 입력을 캡처하고 있습니다.자바에서 스캐너 클래스로 빈 입력을 잡는 방법
두 번째 조건부에 따라야하는 것처럼 공백 행이 잡히지 않는다는 점을 제외하면 다음과 같이 잘 작동하는 것처럼 보입니다. 예를 들어 엔터 키를 누르면 공백 행으로 캡처되고 두 번째 조건은 참이어야합니다. 그러나 새로운 빈 줄이 매번 콘솔에 표시되며, 조건부 논리 대신 입력을 계속하면 전체 콘솔이 "위로 스크롤"됩니다.
scanner를 사용하여 명령 줄에서 빈 입력을 잡는 적절한 방법이 있습니까?
가 어떤 조언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()의 args에 있습니다. 하지만 당신은 표준 입력에 대해 이야기하고 있습니다. –