使用java和apache commons在CSV文件中搜索“Item”
我试图使用Java和A pache commons CSV库来访问CSV文件的数据。 我被困在一个问题。 问题是: “要显示特定行的数据,如果”名称“标题等于”rahul“,当我运行代码时,没有任何内容被打印出来。使用java和apache commons在CSV文件中搜索“Item”
在exportdata.csv文件中的数据是:
- 名称,食品,手机
- 拉胡尔,大米,9876416884
- RAM,蛋,8437123456
- 罗希特,汉堡,9814125755
- 阿米特,鸡,8568934464
而我的代码是:
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"));
}
}
}
我认为该错误是在线路如果(STR ==“拉胡”),我已检查该程序不是处理该STR和“拉胡”相同时STR =“拉胡”在的第一次迭代中用于循环。
因为它们是2个不同的String对象,即使它们具有相同的字符。尝试if ("rahul".equals(str))
Thanxxxx很多......“Dbug” –
我只是试着给你的解决方案....它工作得很好.... !!! Thanxxx再一次.... !!! –
欢迎,高兴地帮助 – DBug
不知道,但你可以试试这个:
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();
}
}
希望这会帮助你。
Thanxxx ...很多.... !!!我只是想尝试一下,然后......让我知道如果我面临任何困难。 –
我认为这可以帮助https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java/513839#513839 – shadowsheep