我是Java的初学者,我有一个关于在数组中使用命令行参数行的问题,例如,我尝试输入:
double []a=Double.parseDouble(args[0]);
然而,它说“无法将双倍转换为双倍”,我无法弄明白,因为我可以做到
double a=Double.parseDouble(args[0]);
那么在数组中使用CL参数输入有什么问题呢?谢谢
答案 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]) };