您可以将ArrayList作为java程序的命令行参数传递

时间:2017-02-13 18:23:24

标签: java arraylist input command arguments

我试图通过命令行参数和BigIntegers的ArrayList传递给java程序。

我理解如此调用程序:

java myProgram one two

args[0] = "one"
args[1] = "two"

但是如果我要这样运行程序

java myProgram arrayList 

如何将此Arraylist的String[]表示形式转换回ArrayList<BigInteger>

arrayList将从返回BigInetegr的arrayList的单独java文件返回,我可以使用该java程序作为此程序的输入吗?

我有点困惑,因为我会怎么做。

谢谢!

1 个答案:

答案 0 :(得分:1)

只要您将实际的十进制字符串传递给您的程序,例如java myProgram 123 456

List<BigInteger> bigInts = new ArrayList<>(args.length);
for(int i = 0; i < args.length; i++)
    bigInts.add(new BigInteger(args[i]));

或使用Java 8流:

List<BigInteger> bigInts = Arrays.stream(args)
                            .map(BigInteger::new)
                            .collect(Collectors.toList());

但是,如果你将文字传递给你的程序,那么两件事,你需要一个自定义函数来解析英文单词BigInteger,而且我怀疑有人会输入一个足够大的整数需要一个{ {1}}。