我有一个以下格式的字符串。
"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
我该如何处理?
答案 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 Eastleigh
和empty string ""
,因此以3
为长度。
但是,如果使用lineArr.split("\",",0)
或lineArr.split("\",")
,则不会返回尾随空字符串。因此,您将获得2
长度。
要消除空字符串,我建议您使用lineArr.split("\",");
split(String match)
以上版本split method
根据您的输出,您应该拨打lineArr.split("\",\"");
,这将给出您的结果输出。