【发布时间】:2015-11-24 17:44:29
【问题描述】:
我有一个简单的问题。我如何在运行 java -jar sample.jar 时将整数数组作为参数传递。整数数组是我的输入。
还有一些其他选项,例如将数组作为逗号分隔值(如 1、2、3)传递,并将字符串值转换为 java 中的整数数组。
我想知道是否还有其他选择。 感谢您的帮助!
【问题讨论】:
标签: java arrays integer command-line-arguments executable-jar
我有一个简单的问题。我如何在运行 java -jar sample.jar 时将整数数组作为参数传递。整数数组是我的输入。
还有一些其他选项,例如将数组作为逗号分隔值(如 1、2、3)传递,并将字符串值转换为 java 中的整数数组。
我想知道是否还有其他选择。 感谢您的帮助!
【问题讨论】:
标签: java arrays integer command-line-arguments executable-jar
不,真的没有其他选择。命令行参数只是 作为文本传递。某些代码必须在某处将它们解析为整数。
有多种第三方库可用于解析命令行,但您的入口点肯定会有一个String[] 参数。如果所有您需要的是int[],我只需将每个String 转换为int。在 Java 8 中,这非常简单:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] array = Arrays.stream(args).mapToInt(Integer::parseInt).toArray();
// Just for example
for (int value : array) {
System.out.println(value);
}
}
}
【讨论】:
java Test 1 2 3 e 5哎呀
命令行参数是文本。您可以将它们作为逗号分隔的列表传递,您可以传递。或者您可以传递一个文件名,其中包含以文本或二进制形式保存的信息。
【讨论】:
最好要求用户使用类似这样的方式提供该参数
For(int i<0; i<ARRAYSIZE; i++) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter the number :");
array[i] = reader.nextInt();
}
参数通常用于配置程序执行。
【讨论】: