我有以下代码:
String inputString;
Scanner in = new Scanner(System.in);
while (true) {
System.out.print("jcp>");
inputString = in.nextLine();
String[] tokens = inputString.split(" ");
switch (tokens[0]) {
case "new":
createNewInstance(tokens);
break;
case "call":
callMethod(tokens);
break;
case "print":
Object obj = hashMap.get(tokens[1]);
print(obj);
break;
default:
System.out.println("Illegal command!");
break;
}
}
我只是希望程序在用户点击ctrl + Z
时突破while循环答案 0 :(得分:1)
nextLine()
将抛出NoSuchElementException
。或者您可以使用in.hasNextLine().
答案 1 :(得分:0)
Ctrl + Z退出程序会很糟糕,Ctrl + C | Ctrl + D已经结束了终端上的程序执行,所以它会像你期望用户输入命令一样好,告诉他们输入{ {1}}可以使用退出程序的命令以及exit
或x
等快捷方式,而不是完整的单词。
以下代码怎么样,
e
如果String inputString;
Scanner in = new Scanner(System.in);
while (true) {
System.out.print("jcp>");
inputString = in.nextLine();
String[] tokens = inputString.split(" ");
switch (tokens[0]) {
case "n":
case "new":
createNewInstance(tokens);
break;
case "c":
case "call":
callMethod(tokens);
break;
case "p":
case "print":
Object obj = hashMap.get(tokens[1]);
print(obj);
break;
case "e":
case "x":
case "exit":
return;
default:
System.out.println("Illegal command!");
break;
}
}
不起作用,您可以将其替换为return;