作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在运行 Java 程序时读取并接受自定义 CLI 参数值,如下所示:
java BookSales --books=/path/to/books.list
--sales=/path/to/sales.list --top_selling_books=3
--top_customers=2 --sales_on_date=2018-02-01
程序必须接受以下参数,并能够在命令行上使用这些值,其中一些是必需的,一些是可选的。
--books=/path/to/books.list (required)
--sales=/path/to/sales.list (required)
--top_selling_books=<count> (optional)
--top_customers=<count> (optional)
--sales_on_date=<date> (optional)
我所做的如下所示:
String books_path = null;
String sales_path = null;
...
...
for(int i = 0; i<args.length; i++) {
if(args[i].toLowerCase().indexOf("--books=") != -1) {
books_path = args[i].split("=")[1];
}
if(args[i].toLowerCase().indexOf("--sales=") != -1) {
sales_path = args[i].split("=")[1];
}
...
...
}
System.out.println(books_path);
System.out.println(sales_path);
有没有更好的方法来仅使用标准 java 库和包来做到这一点?
最佳答案
Java 没有任何内置功能可以让您解析标准字符串操作之外的命令行参数。如果您不想使用 Apache Commons CLI 等库,那么您需要自己编写它。
自己编写它并不简单,而且可能会浪费时间。我建议您重新考虑,并为此使用一个库。
问题中的代码是一个很好的例子,说明了为什么人们不应该自己编写它:它非常脆弱,并且在显示的小代码片段中已经存在许多错误(请参阅 JB Nizet 的评论)。
关于java - 如何在 Java 中读取和接受带有 name/id/title 的自定义 CLI 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52549486/
我是一名优秀的程序员,十分优秀!