gpt4 book ai didi

java - CSVReader 无法正确读取一行

转载 作者:行者123 更新时间:2023-12-01 14:19:48 25 4
gpt4 key购买 nike

我有一个包含 12 列的 .csv 文件,并使用 CSVReader 类读取该文件。

List<String[]> rows = reader.readAll();

但我发现有些 String[] 的元素少于 12 个。我调试的时候发现这是CSV文本格式的问题。

有两个问题:

  1. 某些列以反斜杠结尾。

    例如,"Column A content\", "Column B content"将被读作一列 \"被视为转义字符。

  2. 某些单元格的内容有 \"在他们中。

    例如,一行中,A列的内容是命令行: "d -R u+rwX \""${MYTMP}\"" > /dev/null 2>&1; rm -fr \""${MYTMP}\"" >"

所以我想不出一个好的替换策略来处理这个格式问题。(例如,将所有 \ 替换为 \\ ,这适用于 "contentA\","contentB" 情况,但不适用于 \" 当它是单元格内容时)

有什么建议吗?也欢迎讨论您在 CSV 文件中遇到的不良格式问题和解决方案,以便 Reader 无法正确读取。

最佳答案

我认为如果你替换\",\\",这会解决你的问题。Unix 命令行很可能不包含 , \" 之后的字符。您可能必须使用 \", " 来扩展它至\\", "或者添加空格。

特殊情况是当你的最后一列结束时,所以 \"<nl>应替换为\\"<nl>哪里<nl>是您拥有的任何行分隔符( \r\n\r\n )

关于java - CSVReader 无法正确读取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709757/

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