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

标签 java csv parsing jtextfield

在 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/

相关文章:

java - 先前完成后添加新订阅

json - 用于在服务器上存储文章的 XML、JSON、YAML 或 CSV?

python - 如何在 python(2.7) 中使用 Tika 包(https ://github. com/chrismattmann/tika-python)来解析 PDF 文件?

python - 解析器 YACC 中的 EOF 错误

java - 在保留其结构的同时过滤 XML

java - 使用套件时的 JUnit 4 @BeforeClass 和 @AfterClass

java - 为什么 spring init-method destroy-method 方法的行为不同?

java - Tomcat使用哪些内存类型,如何控制

Java 打印方 block (未知字符)和常规文本

Java NumberformatException 与 CSV 长转换