【问题标题】:Java OpenCSV Split by pipe limitedJava OpenCSV 按管道拆分受限
【发布时间】:2017-05-18 00:52:53
【问题描述】:

我在使用逗号分割读取文件时遇到问题。我可以这样读取文件:

CSVReader reader = new CSVReader(new FileReader(FileName), '|' , '"' , 0);

然后当我想获取单个值时,我可以这样读取它们:

String[] record = rowString.split(","); 

问题当然是逗号不是读取文件的最可靠方式。有没有办法通过像这样分隔的管道来拆分字符串?:

String[] record = rowString.split("\\|"); 

这就是我阅读这些行的方式,可能在此代码中我需要进行此类调整?

 for(String[] row : allRows){ 
   String rowString = Arrays.toString(row).toString(); 
   String[] record = rowString.split(","); 
 }

谢谢。

【问题讨论】:

  • String[] 记录 = rowString.split("\\|");应该可以正常工作。但同样,CSV 文件通常用于分隔单字字符串。如果您的单个字符串是多字的,那么使用像管道这样的分隔符来解释它们中的实际逗号是有意义的。
  • 您面临的问题是什么?任何堆栈跟踪?

标签: java opencsv delimited


【解决方案1】:

我不知道这是否回答了问题,但就我而言,这可以解决问题:

val reader: Reader = Files.newBufferedReader(path)

    val csvToBean = CsvToBeanBuilder<MyCsvSchema>(reader)
        .withType(MyCsvSchema::class.java)
        .withSeparator('|')
        .withIgnoreLeadingWhiteSpace(true)
        .build()

    val list = csvToBean.parse()

这是一个 Kotlin 代码

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多