使用 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 文件中的数据是:
- 姓名,食物,Phone
- 拉胡尔,赖斯,9876416884
- ram,鸡蛋,8437123456
- rohit,汉堡,9814125755
- amit,鸡,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"));
}
}
}
我认为错误在 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();
}
}
希望对您有所帮助。
我正在尝试使用 Java 和 Apache commons CSV 库访问 CSV 文件的数据。 我陷入了一个问题。 问题是: "To Display the data of particular row if "Name" Header 等于 "rahul"。当我 运行 代码没有打印出来时。"
exportdata.csv 文件中的数据是:
- 姓名,食物,Phone
- 拉胡尔,赖斯,9876416884
- ram,鸡蛋,8437123456
- rohit,汉堡,9814125755
- amit,鸡,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"));
}
}
}
我认为错误在 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();
}
}
希望对您有所帮助。