java - 如何解析带有引号中的某些项目的逗号分隔行(CSV)?

标签 java regex scala csv

我正在尝试使用以下方法解析逗号分隔的字符串:

val array = input.split(",")

然后我注意到一些输入行在引号内有“,”:

data0, "data1", data2, data3, "data4-1, data4-2, data4-3", data5

*请注意,数据不是很干净,所以有些字段在引号内,有些则没有


如何将这样的行拆分为:

array(0) = data0
array(1) = data1
array(2) = data2
array(3) = data3
array(4) = data4-1, data4-2, data4-3
array(5) = data5

最佳答案

根据我的评论:

解析 CSV 文件可能非常棘手,因为它围绕引号、逗号和引号包含在引号中。我建议引入一个库,该库被认为可以稳健地处理所有边缘情况。

您可以考虑的选项包括 scala-csv , 和 traversable-csv .或者使用类似 opencsv 的 Java 库.

否则,如果您不想或不能使用图书馆,您可以查看 this SO answerthis SO answer了解其他人如何处理自己的 CSV 解析器。

关于java - 如何解析带有引号中的某些项目的逗号分隔行(CSV)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803687/

相关文章:

java - 流口水类加载的问题

java - Spring Boot -- 使用 CSRF token 发布请求会产生 403 错误

正则表达式允许带前瞻和 "."的字边界

regex - 如何在 Vim 中用每行开头从 1 开始的连续数字替换子匹配

python - 我正在开发类似于 fb 聊天的应用程序。哪个框架 - Play 还是 Django?

java - 如何使用 setter 而不是 final 变量的构造函数?

java - 在命令行中执行 flyway 回调

regex - 是否有一个简单的正则表达式来将数字与 x 进行比较?

java - 使用 IntelliJ Remote.serverException 时出现 Scala 错误

java - 什么可以使此 dsl 更易于键入或阅读?