我是编程新手,我正在制作一个仅在命令行中运行的应用。我发现我可以使用BufferedReader从命令行读取输入。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String Input = "";
while (Input.equalsIgnoreCase("Stop") == false) {
Input = in.readLine();
//Here comes the tricky part
}
in.close();
我现在要做的是找到一种方法来创建不同的“命令”,只需在命令行中键入它们就可以使用它们。但是这些命令可能必须多次使用。我是否必须使用某种命令设计模式和一个巨大的switch语句(这对我来说似乎不对)?我想避免使用额外的库。
有没有经验的人可以帮助我?
答案 0 :(得分:4)
您可以尝试这样的事情:
public static void main(String[] args) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String input = "";
try {
while (!input.equalsIgnoreCase("stop")) {
showMenu();
input = in.readLine();
if(input.equals("1")) {
//do something
}
else if(input.equals("2")) {
//do something else
}
else if(input.equals("3")) {
// do something else
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void showMenu() {
System.out.println("Enter 1, 2, 3, or \"stop\" to exit");
}
优良作法是保持variables
下限。
我还要说!Input.equalsIgnoreCase("stop")
比Input.equalsIgnoreCase("stop") == false
更具可读性,尽管两者在逻辑上是等价的。
答案 1 :(得分:0)
如果它只是读取程序参数,您可以将它们添加到Java应用程序调用之后,并通过main方法的args参数访问它们。然后,您可以遍历数组并搜索程序接受的标记。