gpt4 book ai didi

Java OpenCSV - 2 列表比较和复制

转载 作者:行者123 更新时间:2023-12-01 10:47:35 24 4
gpt4 key购买 nike

我将使用 OpenCSV 制作一个应用程序,比较 2 个 .csv 列表。它应该像这样工作:

  1. 打开 2 个 .csv 文件(每个文件包含以下列:姓名、电子邮件)
  2. 保存结果(这是一个问题,我不知道是否应该将其保存到表格或其他内容中)
  3. 比较“电子邮件列”的列表 1 和列表 2 的值。
  4. 如果列表 1 中的电子邮件出现在列表 2 中 - 将其删除(从列表 1 中)
  5. 将结果导出到新的 .csv 文件

不知道这个算法好不好。请告诉我在这种情况下保存读取 .csv 文件结果的最佳选项。

亲切的问候

最佳答案

您可以使用univocity-parsers更轻松地解决这个问题因为它可以将您的数据读入列中:

CsvParserSettings parserSettings = new CsvParserSettings(); //parser config with many options, check the tutorial
parserSettings.setHeaderExtractionEnabled(true); // uses the first row as headers

// To get the values of all columns, use a column processor
ColumnProcessor rowProcessor = new ColumnProcessor();
parserSettings.setRowProcessor(rowProcessor);

CsvParser parser = new CsvParser(parserSettings);

//This will parse everything and pass the data to the column processor
parser.parse(new FileReader(new File("/path/to/your/file.csv")));

//Finally, we can get the column values:
Map<String, List<String>> columnValues = rowProcessor.getColumnValuesAsMapOfNames();

假设您用它解析了第二个 CSV。只需获取电子邮件并创建一组即可:

Set<String> emails = new HashSet<>(columnValues.get("Email"));

现在只需迭代第一个 CSV 并检查电子邮件是否在 emails 集中。

披露:我是这个库的作者。它是开源且免费的(Apache V2.0 许可证)。

关于Java OpenCSV - 2 列表比较和复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34088132/

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