通常,当我们必须在 Java 中访问命令行参数时,我们使用 args[] 但是当命令行输入是这样的时候就可以了,
//Demo is class
C:\java Demo 1 2
我们可以简单地使用 args[0] 和 args[1] 访问 1 和 2。
但是我遇到过命令行输入会这样的情况,
C:\java Demo --num1=12 --num2=14
如果我必须获得高于 num1 和 num2 的值,我该如何获得?
我在谷歌上搜索了几次稍作修改的命令行参数,每次我只得到更简单的版本。
我在这里看到了这个答案
How do I parse command line arguments in Java? .
但我正在寻找没有第三方库的简单 Java 版本。是的,它们让我们的生活变得轻松,但我想先学习 Java。
public static void main(String[] args) {
//simpler way to access command line arguments
int first_num = Integer.parseInt(args[0]);
int second_num = Integer.parseInt(args[1]);
System.out.println("num1= "+first_num+", num2= "+second_num);
}
实际上不确定是否通过使用
C:\ java Demo --num1=12 --num2=13
我们将能够在我们的 main 方法中直接访问 num1 和 num2。
但我需要这些值在 main 方法中可用。
希望我清楚,如果需要任何信息,请告诉我。
最佳答案
要以非常简单的方式实现您想要的,您可以尝试,
public static void main(String[] args) {
Map<String, String> argsMap = new LinkedHashMap<>();
for (String arg: args) {
String[] parts = arg.split("=");
argsMap.put(parts[0], parts[1]);
}
argsMap.entrySet().forEach(arg-> {
System.out.println(arg.getKey().replace("--", "") + "=" + arg.getValue());
});
}
注意:根据重复的帖子,还有更多高级方法。但我想您正在寻找一种非常简单的方法。
关于java - 带变量名的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54092354/