2013-08-24 101 views
-2

我在Java中一个非常初学者,我有一个关于使用命令行参数线阵列中的问题,例如,我试着输入:的命令行参数的Java

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

然而,说“不能转换双翻番”,我想不出它,我能做到的

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

那么,什么是错误使用CL参数输入数组呢?谢谢

+0

'Double.parseDouble(args [0])'返回一个值,而不是一个数组。 – svz

+0

你不能给'double []'数组赋值'double'。 –

+0

当你想知道什么是方法,请查阅它的javadoc:http://docs.oracle.com/javase/7/docs/api/ –

回答

2

简单,Double.parseDouble()返回double,而不是一个double[],所以你不能分配它变为double[]类型的变量。

如果你想将所有的字符串转换成argsdouble 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

谢谢,非常感谢 – user2711992

+0

@ user2711992很高兴能帮到你。不要忘记[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 – arshajii

0

它必须是一个数组被分配...

例如

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

然而,它说:“无法转换双翻番”,我想不出它,我能做到的

它所实际上说是“不能转换doubledouble[] ”。 []对错误信息的含义至关重要......并且您不应该忽略它。

它告诉你,你不能把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])}; 
+0

+1用于指出正确的错误信息msg – exexzian