我在Java中一个非常初学者,我有一个关于使用命令行参数线阵列中的问题,例如,我试着输入:的命令行参数的Java
double []a=Double.parseDouble(args[0]);
然而,说“不能转换双翻番”,我想不出它,我能做到的
double a=Double.parseDouble(args[0]);
那么,什么是错误使用CL参数输入数组呢?谢谢
我在Java中一个非常初学者,我有一个关于使用命令行参数线阵列中的问题,例如,我试着输入:的命令行参数的Java
double []a=Double.parseDouble(args[0]);
然而,说“不能转换双翻番”,我想不出它,我能做到的
double a=Double.parseDouble(args[0]);
那么,什么是错误使用CL参数输入数组呢?谢谢
简单,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
,你在干什么你的第二小片段;在这种情况下使用数组没有多大意义。
谢谢,非常感谢 – user2711992
@ user2711992很高兴能帮到你。不要忘记[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 – arshajii
它必须是一个数组被分配...
例如
double[] a = new double[] { Double.parseDouble(args[0]) };
然而,它说:“无法转换双翻番”,我想不出它,我能做到的
它所实际上说是“不能转换double
到double[]
”。 []
对错误信息的含义至关重要......并且您不应该忽略它。
它告诉你,你不能把double
当作double
的数组。
如果你想初始化一个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])};
+1用于指出正确的错误信息msg – exexzian
'Double.parseDouble(args [0])'返回一个值,而不是一个数组。 – svz
你不能给'double []'数组赋值'double'。 –
当你想知道什么是方法,请查阅它的javadoc:http://docs.oracle.com/javase/7/docs/api/ –