我试图通过命令行参数和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程序作为此程序的输入吗?
我有点困惑,因为我会怎么做。
谢谢!
答案 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}}。