java - 在 Java 中为终端应用程序创建命令

标签 java shell command-line

我是编程新手,我正在制作一个在命令行中运行的应用程序。我发现我可以使用 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 语句的命令设计模式(这对我来说似乎不正确)?我想避免使用额外的库

有比我更有经验的人可以帮助我吗?

最佳答案

你可以尝试这样的事情:

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");
}

保持变量小写是个好习惯。

我还要说 !Input.equalsIgnoreCase("stop")Input.equalsIgnoreCase("stop") == false 更具可读性,尽管两者都是逻辑上等价。

关于java - 在 Java 中为终端应用程序创建命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992518/

相关文章:

java - 如何在未启用扬声器电话模式的情况下在通话中播放音频?

java - 整数不会设置到 JTextField 中

Linux命令删除所有比最新修改的文​​件早的文件

Windows 命令行 : START Command Switch/I meaning?

Java POI 最后的 CellStyle 覆盖以前的 CellStyles

java - 类 TextBook 中的构造函数 TextBook 无法应用于给定类型

linux - 当我在 Linux 中的项目目录上运行 make 命令时,出现以下错误

linux - 使用 Bash 自动终止匹配进程

windows - 对于长路径和长文件名,删除超过 30 天的文件

Python 使用命令行创建 7zip 存档