gpt4 book ai didi

java - 读取 CSV 记录,同时忽略尾随空格

转载 作者:行者123 更新时间:2023-12-02 03:22:53 33 4
gpt4 key购买 nike

我正在迭代 csv 文件并按标题提取数据。但我想允许尾随空格并仍然识别标题。

例如 Header1,Header2,Header3 仍应被识别为 Header1 ,Header2,Header3

我的代码...

final Reader in = new BufferedReader(new InputStreamReader(csv));

for (CSVRecord record : CSVFormat.EXCEL.withHeader().parse(in)) {
try {
final MyObject mo = new MyObject();
mo.setHeader1(record.get("Header1"));
mo.setHeader2(record.get("Header2"));
mo.setHeader3(record.get("Header3"));
....
}catch(){
....
}
}

但是这当然只会找到完全匹配的Header1(没有尾随空格)。

我找不到任何类似 record.getIgnoreSpace() 或类似方法的方法

最佳答案

如果将使用 CSVFormat.EXCEL.withHeader().parse(in) 构造的 CSVParser 对象存储到变量中,则可以使用方法 getHeaderMap() 查找所需 header 的索引。然后可以使用这些索引代替 header 名称来查找字段(这实际上也是执行查找的更有效方法)。

一种方法是这样的:

CSVParser parser = CSVFormat.EXCEL.withHeader().parse(in);
Map<String, Integer> headerMap = parser.getHeaderMap();

int header1Index = -1;
int header2Index = -1;
for (Map.Entry<String, Integer> entry : headerMap.entrySet()) {
String name = entry.getKey();
int index = entry.getValue();

switch (name.trim()) {
case "Header1":
header1Index = index;
break;
case "Header2":
header2Index = index;
break;
}
}

for (CSVRecord record : parser) {
...
mo.setHeader1(record.get(header1Index));
...
}

关于java - 读取 CSV 记录,同时忽略尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39394373/

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