当字符串标记是 int 时,我的代码似乎不起作用。这是:
public class CO2Data {
CO2Data dataSet[] = new CO2Data[10];
String strLine = "Italy 476.08 116.86 2 592";
int lines = 10;
double roadCO2;
public void saveLineInfo(String strLine, int lines) {
StringTokenizer token = new StringTokenizer(strLine);
String str = "hello";
int count = 0;
for (int i = 0; i < lines; i++) {
while (token.hasMoreTokens()) {
str = token.nextToken();
if (count == 3) {
getRoadCO2(str, roadCO2);
dataSet[i].setRoadCO2(roadCO2);
}
count++;
}
}
}
public double getRoadCO2(String str, double roadCO2) {
roadCO2 = Double.parseDouble(str);
return roadCO2;
}
public void setRoadCO2(double roadCO2) {
this.roadCO2 = roadCO2;
}
}
在其余的行中,roadCO2 是 double 的,所以我猜我的程序变得困惑了?我如何解决它?非常感谢!
最佳答案
您收到 NullPointerException 因为,
您已声明一个数组 CO2Data dataSet[] = new CO2Data[10];
,
但 CO2Data[] array
中的每个元素指向 Null。
因此,此调用:dataSet[i].setRoadCO2(roadCO2);
将生成 NullPointerException
因为dataSet[i]
指向null
.
解决方案:
实例化dataSet[i] = new CO2Data();
然后调用dataSet[i].setRoadCO2(roadCO2);
关于java - 将字符串解析为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004708/