OpenCSV 如果我有'|'怎么办作为分隔符而不是 ','

OpenCSV what if I have '|' as a seperator instrad of ','

我的代码是这样的:

CSVReader reader = new CSVReaderBuilder(new FileReader("C://Users//himanshurai//eclipse-workspace//nike.csv")).withSeparator('|').withSkipLines(1).build();
List<TShirt> tShirtList = reader.readAll().stream().map(data -> {
    //TShirt tShirt = new TShirt(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
    TShirt tShirt = new TShirt();
    tShirt.setId(data[0]);
    tShirt.setName(data[1]);
    tShirt.setColor(data[2]);
    tShirt.setGender(data[3]);
    tShirt.setSize(data[4]);
    tShirt.setPrice(data[5]);
    tShirt.setRating(data[6]);
    tShirt.setIsAvailable(data[7]);
    return tShirt;
}).collect(Collectors.toList());
tShirtList.forEach(System.out::println);

这是我的 CSV 文件:

我的代码显示索引越界错误。我认为这是因为 CSV 文件有'|'作为分隔符而不是“,”,我尝试使用 withSeperator('|') 方法,但它显示错误,如该方法未定义。还有其他方法吗?

好的。所以,除了原来的拼写错误,我认为你把 CSVParserBuilderCSVReaderBuilder 类 搞混了。

根据 source code,您应该这样使用它们:

final CSVParser parser =
    new CSVParserBuilder()
   .withSeparator('\t')
   .withIgnoreQuotations(true)
   .build();
final CSVReader reader =
    new CSVReaderBuilder(new StringReader(csv))
   .withSkipLines(1)
   .withCSVParser(parser)
   .build();

请注意 withSeparator 方法在 CSVParserBuilder 而不是 CSVReaderBuilder

(仔细看...发现javadoc here 与源码不符,示例中显示withSeparator,但方法列表中没有。去图。)