我是 Java 的初学者,我有一个关于在数组中使用命令行参数行的问题,例如,我尝试输入:
double []a=Double.parseDouble(args[0]);
但是,它说“无法将双精度转换为双精度”,我无法弄清楚,因为我可以做到
double a=Double.parseDouble(args[0]);
那么在数组中使用 CL 参数输入有什么问题呢?谢谢
简单地说,Double.parseDouble()
返回 adouble
而不是 a double[]
,因此您不能将其分配给 type 的变量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
的内容存储在第二个片段中;在这种情况下使用数组没有多大意义。
但是,它说“无法将双精度转换为双精度”,我无法弄清楚,因为我可以做到
它实际上说的是“无法转换double
为double[]
”。这[]
对于错误消息的含义至关重要......你不应该忽略它。
它告诉您不能将 adouble
视为double
.
如果要初始化 a double[]
,需要先分配一个double
数组;例如
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])};
它必须是一个分配的数组...
例如
double[] a = new double[] { Double.parseDouble(args[0]) };