gpt4 book ai didi

java - 在Java上解析CSV文件以提取字符串

转载 作者:行者123 更新时间:2023-12-02 11:59:58 32 4
gpt4 key购买 nike

在 Java 上,我制作了一个带有搜索栏的简单程序。我还有一个 CSV 文件“file.csv”,其中包含以下内容:

"ID","FIRSTNAME","LASTNAME"
"JM1","Jean","Martial"
"AD1","Audrey","Dubois"
"BX1","Bertrand","Xavier"

我可以使用这一行在 Java 上打开该文件。

String file = "C:\\file.csv";

要验证文件是否存在,我使用此行。

if(new File(file).exists()) {
JOptionPane.showMessageDialog(frame, "Fichier ouvert succes");
}

现在我想解析文件以提取 AD1 并显示 true(如果存在)或 false(如果不存在)。我已经为此声明了扫描仪,但我不知道如何为此进行设置。

Scanner scanner = null;
try {
scanner = new Scanner(new File(file));
scanner.useDelimiter(coma_delimiter);
while(scanner.hasNext()) {
String s1= scanner.next();
System.out.print(s1 +" ");
if(s1.equals(search_field.getText())) {
System.out.print("OKOK");
} else {
System.out.println("NOK");
}
}


} catch (FileNotFoundException fe) {
fe.printStackTrace();
} finally {
scanner.close();
}

这里的search_field是一个JTextField。

最佳答案

您没有逐行读取文件。您实际上应该做的是获取一行,将其拆分,删除双引号并与您的字符串进行比较。或者,您可以将输入字符串用双引号括起来,然后与拆分后的字符串进行比较。为此,请尝试以下代码:

Scanner scanner = null;
try {
scanner = new Scanner(new File(file));

String s1 = null;
String id= null;
String[] tempArr = null;
String searchStr = "\""+search_field.getText()+"\"";
System.out.print("searchStr = " + searchStr );

while(scanner.hasNext()) { // While there are more lines in file
s1= scanner.nextLine();
tempArr = s1.split(","); // use coma_delimiter instead coma_delimiter if coma_delimiter=","
id = (tempArr != null && tempArr.length > 0? tempArr[0] : null);
System.out.print("ID = " + id);

if(id != null && id.equals(searchStr)) {
System.out.print("OKOK");
break; // quit the loop searchStr is found
} else {
System.out.println("NOK");
}
}
} catch (FileNotFoundException fe) {
fe.printStackTrace();
} finally {
scanner.close();
}

关于java - 在Java上解析CSV文件以提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47347405/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com