我的程序将在“command
parameter
”的形式在它们之间具有空间读取用户的键盘命令。它继续执行单个命令,直到下一个命令是“exit
”。此外,如果用户弄乱了,程序应该显示一个错误,但继续要求命令(一个功能,我不认为我已经完成)..连续输入命令
在下面的代码实现这一点的好办法?它可以处理用户只需按下回车键W/O命令,垃圾输入等?如果有的话,我想知道是否有更好的惯用方式来实现这一点。
String command = "";
String parameter = "";
Scanner dataIn = new Scanner(System.in);
while (!command.equals("exit")) {
System.out.print(">> ");
command = dataIn.next().trim();
parameter = dataIn.next().trim();
//should^these have error handling?
if (command.equals("dothis")) {
//do this w/ parameter..
} else if (command.equals("dothat")) {
//do that w/ parameter..
} //else if... {}
else {
system.out.println("Command not valid.");
}
}
System.out.println("Program exited by user.");
注:我把这个班没有什么异常处理是一个单一的概念,所以在这方面的任何指针是极大的赞赏:)
一张小纸条:你应该总是()'之前调用做出'dataIn.hasNext调用'dataIn.next()'以确保未来'()'是一个有效的呼叫。典型地,该环头'而(dataIn.hasNext())'或'而(dataIn.hasNextLine())'解析时输入命令。 – 2012-09-12 22:10:53
所以'而(!command.equals( “退出”)&& dataIn.hasNextLine())'? – James