public static double[] processUserInput(String data) {
String[] arrayInString;
double[] arrayInDouble;
int length;
if( data.contains(",") ) {
arrayInString = data.split(",");
length = arrayInString.length;
for(int i = 0; i < length; i++) {
arrayInDouble[i] = Double.parseDouble( arrayInString[i] );
}
}
return arrayInDouble;
}
我正在使用Netbeans,编译器说可能没有初始化变量arrayInDouble
。这是什么意思?
答案 0 :(得分:1)
在此
String[] arrayInString;
double[] arrayInDouble;
您只是声明它们,在使用它们之前,您还需要初始化:
String[] arrayInString = new String[length1];
double[] arrayInDouble = new double[length2];
其中length
是数组的长度。
PS:还有其他方法可以初始化它们,例如:
double[] arrayInDouble = {1.1, 2.2}; // The length of the array will be the number of elements in brackets
答案 1 :(得分:1)
String[] arrayInString;
这未初始化,但您在提及之前提供了值(arrayInString = data.split(",");
),因此没有投诉。
double[] arrayInDouble;
这也是未初始化的。如果输入不包含逗号,则跳过所有代码,然后尝试返回arrayInDouble
的值。警告说,当您执行return
时,arrayInDouble
可能没有值。
答案 2 :(得分:0)
在使用它们之前,您需要初始化它们(分配一些值)。
答案 3 :(得分:0)
您尚未为这些变量指定任何值
String[] arrayInString;
double[] arrayInDouble;
这些变量是局部变量,因此需要在使用前进行初始化,因为它们不会获得任何默认值。