我正在使用 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/