java - 用逗号分割字符串并忽略双引号中的逗号

标签 java string csv split

我正在使用 Java 进行编码,并且有一个方法返回一个如下所示的字符串:

0, 2, 23131312,"This, is a message", 1212312

我希望字符串像这样被吐出:

["0", "2", "23131312", "This, is a message", "1212312"]

当我在逗号上使用分割字符串方法时,它也会分割“这是一条消息”,这是我不想要的。如果可能的话,我希望它忽略该特定逗号并去掉双引号。

我查找了一些答案,CSV 似乎是实现这一点的方法。但是,我没有正确理解它。

最佳答案

我认为你可以使用正则表达式,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)从这里:Splitting on comma outside quotes

您可以在此处测试该模式:http://regexr.com/3cddl

Java 代码示例:

public static void main(String[] args) {
    String txt = "0, 2, 23131312,\"This, is a message\", 1212312";

    System.out.println(Arrays.toString(txt.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")));

}

关于java - 用逗号分割字符串并忽略双引号中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257547/

相关文章:

java - 文件下载 - 负文件长度

java - 在 Eclipse 中为 Java EE 开发人员版禁用 HTML 警告

java - 将字符串中的每个单词或数字组合加倍

相当于 unix "strings"实用程序的 Python

java - 如何使用 DOM 正确解析我的 csv 文件?

python - 调用 Python 文件后 Excel CSV 输出出现错误

java - java中int转json的方法

python - 如何转义通过用户输入收到的 latex 代码?

Java 创建 csv 文件,有 "和 ; 在其中,在 Excel 中正确打开

java - 停止一个线程并启动另一个线程?