使用 java 和 apache commons CSV 库在 CSV 文件中搜索 "Item"

Searching for "Item" in CSV file using java and apache commons CSV library

我正在尝试使用 Java 和 Apache commons CSV 库访问 CSV 文件的数据。 我陷入了一个问题。 问题是: "To Display the data of particular row if "Name" Header 等于 "rahul"。当我 运行 代码没有打印出来时。"

exportdata.csv 文件中的数据是:

我的代码是:

public class csvexample {

 public void readfile()
 {
    FileResource fr=new FileResource();
    CSVParser parser=fr.getCSVParser();
    for(CSVRecord record : parser)
    {

        String str=record.get("Name");
        System.out.println(str);

        if(str=="rahul")
        {
        System.out.print(record.get("Name") + "    ");
        System.out.print(record.get("Phone") + "    ");
        System.out.println(record.get("Food"));
        }          
    }
}

我认为错误在 if(str=="rahul") 行,我检查过程序没有处理 str 和 "rahul" 在 for 循环.

的第一次迭代中,当 str="rahul" 时相同

因为它们是 2 个不同的字符串对象,即使它们具有相同的字符。尝试 if ("rahul".equals(str))

不确定,但你可以试试这个:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

 public void readFile() {

    String csvFile = "exportdata.csv";
    String line = "";
    String cvsSplitBy = ",";

    try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {

        while ((line = br.readLine()) != null) {

            // use comma as separator
            String[] str = line.split(cvsSplitBy);
            String name = str[0];

            if(name.equals("rahul")){
                System.out.print("Name: " + str[0]);
                System.out.print(" Food: " + str[1]);
                System.out.println(" Phone: " + str[2]);
            }

        }

    } catch (IOException e) {
        e.printStackTrace();
    }

}

希望对您有所帮助。