用双引号拆分问题括起来的字符串

时间:2017-01-13 10:31:47

标签: java

我有一个以下格式的字符串。

"test","2, High Street, 50100 Eastleigh",",UK"

当我使用下面的代码分割上面的字符串

String[] lineArr = line.split("\",", -1)

实际输出为:

"test
"2, High Street, 50100 Eastleigh

UK"

预期输出为:

test
2, High Street, 50100 Eastleigh
,UK

我该如何处理?

2 个答案:

答案 0 :(得分:3)

您可以忽略第一个和最后一个",并在","上拆分,如下所示:

String[] lineArr = line.substring(1,line.length()-1).split("\",\"");

我相信有更高效和更优雅的解决方案,但这应该是您的代码很容易适应单行。

答案 1 :(得分:1)

split(String match, int limit)

如果limit是非正数,那么模式将被应用尽可能多次,并且数组可以具有任何长度。如果limit为零,则模式将被应用尽可能多次,数组可以具有任何长度,并且尾随空字符串将被丢弃。

"test","2, High Street, 50100 Eastleigh","

这里当您应用lineArr.split("\",",-1)时,限制为负数,它也将返回尾随空字符串,

test"2, High Street, 50100 Eastleighempty string "",因此以3为长度。

但是,如果使用lineArr.split("\",",0)lineArr.split("\","),则不会返回尾随空字符串。因此,您将获得2长度。

要消除空字符串,我建议您使用lineArr.split("\","); split(String match)以上版本split method

根据您的输出,您应该拨打lineArr.split("\",\"");,这将给出您的结果输出。