gpt4 book ai didi

java - 将可选参数传递给 CLI 程序 - Java

转载 作者:行者123 更新时间:2023-11-30 06:50:52 25 4
gpt4 key购买 nike

我正在制作一个命令行程序,我使用if条件来检查用户输入的内容并启动特定方法。

input = bufferedReader.readLine;

if (input.equals("search"))
search();


目前,要执行搜索,用户必须输入:

>>> search
>>> aTextToSearchFor

但我希望用户能够输入

>>> search -c 3

so, 3 将作为参数传递给 search() 方法
另外,search 仅应有效,并且将传递默认值 0


注:

  • 我愿意在不使用 -c 的情况下实现此功能,因此命令将为 search 5
  • 我找到了 Apache Commons CLI 和 Jcommander,但我找不到足够简单的解释来理解任何事情:D

最佳答案

您可能会发现String.split提供帮助。也许这样的事情会帮助您开始?

input = bufferedReader.readLine();
String[] args = input.split(" +"); // split on one or more spaces
if (args[0].equals("search")) {
if (args.length > 2) {
// args may be an array like {"search", "-c", "5"}.
// After you confirm that, you may need to convert args[2]
// from a String to an int using Integer.parseInt
// (more code here)
}
}

当你的程序很小时,像这样简单地开始是可以的。如果您的程序开始变大,并且您感觉自己在一遍又一遍地编写类似的代码,那么现在可能是研究命令解析库的好时机。

您提到了 Apache Commons CLI 或 Jcommander,但我个人发现 argparse4j在功能和简单性之间取得良好的平衡。它有一个流畅的 API,这意味着您的代码将类似于:

ArgumentParser p = ArgumentParsers.newArgumentParser(myCommandName)
.description(myCommandDescription);
p.addArgument(...).help(...)...
...
p.parseArgsOrFail(args);

关于java - 将可选参数传递给 CLI 程序 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42802863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com