Java中数组中的命令行参数

时间:2013-08-24 14:54:18

标签: java arrays

我是Java的初学者,我有一个关于在数组中使用命令行参数行的问题,例如,我尝试输入:

double []a=Double.parseDouble(args[0]);

然而,它说“无法将双倍转换为双倍”,我无法弄明白,因为我可以做到

double a=Double.parseDouble(args[0]);

那么在数组中使用CL参数输入有什么问题呢?谢谢

3 个答案:

答案 0 :(得分:2)

简单地说,Double.parseDouble()返回double而不是double[],因此您无法将其分配给double[]类型的变量。

如果您想将args中的所有字符串转换为double s,您可以尝试类似

的内容
double[] a = new double[args.length];
for (int i = 0; i < args.length; i++) {
    a[i] = Double.parseDouble(args[i]);
}

当然,如果你只想要args[0],那么就像你在第二个片段中那样存储已解析的double;在这种情况下使用数组没有多大意义。

答案 1 :(得分:1)

  

然而,它说“无法将双倍转换为双倍”,我无法弄明白,因为我可以做到

实际上所说的是“无法将double转换为double[]”。 []对于错误消息的含义至关重要......你不应该忽略它。

它告诉您,您无法将double视为double的数组。


如果要初始化double[],则需要先分配double数组; e.g。

double [] a = new double[1];
a[0] = Double.parseDouble(args[0]);

或者你可以在一个声明中这样做:

double [] a = new double[]{Double.parseDouble(args[0])};

甚至

double [] a = {Double.parseDouble(args[0])};

答案 2 :(得分:0)

它必须是分配的数组......

e.g。

double[] a = new double[] { Double.parseDouble(args[0]) };