首页 > 解决方案 > 不明白在处理 3 中访问 CSV 文件的工作原理。需要解释

问题描述

我之前创建了一个名为 titanicLinearisedDataSet.csv 的带有 textedit 的 CSV 文件。我的目标是使用处理 3 访问此文件并检查列中的元素是否等于字符串值“Nil”。我没有收到结果,而 csv 文件包含“Nil”。

我有一个 CSV 文件 (CSV_file_image.jpg)的图像。

谢谢你的帮助 !

String [][] array;
void setup() {
    String [] lines = loadStrings("titanicLinearisedDataSet.csv");

    array = new String[lines.length][3];
    int i = 0;

    for(String line: lines){
        String [] pieces = split(line,",");
        if(pieces[3] == "Nil"){
            println("It worked");
    }
}

标签: javacsvprocessing

解决方案


您不应该使用==来比较String值。您应该改用该equals()函数:

if(pieces[3].equals("Nil")){
  println("It worked");
}

参考

要比较两个字符串的内容,请使用equals()方法,如if (a.equals(b)),而不是if (a == b)。AString是一个Object,因此将它们与==运算符进行比较仅比较两个字符串是否存储在相同的内存位置。使用该equals()方法将确保比较实际内容。

还要注意你的大括号。您发布的代码似乎缺少一个。

如果这不起作用,请尝试养成调试代码的习惯。例如,尝试打印出 和 的值,pieces看看pieces[3]到底发生了什么。


推荐阅读