java - 将字符串解析为 double

标签 java parsing

当字符串标记是 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/

相关文章:

java - 正则表达式无序匹配

java - 如何在Java类中封装一个startActivityForResult并在调用该方法的Activity上获取onActivityResult

java - Apache Tomcat : adding/deleting/editing JNDI resources

parsing - 如何理解EDI文件?

java - 使用 Java 从美国地址解析邮政编码

java - 使用后如何删除一行代码?

Java:合并 2 个列表 <String[]>

parsing - 为什么这个表达式没有被正确解析?

python - 使用 Lambdas 从字符串表达式构建可执行函数

parsing - 用于上下文无关文法的FIRST和FOLLOW集的计算算法