在Java中,我使用String split方法拆分包含以分号分隔的值的字符串。
目前,我有以下一行在99%的情况下都有效。
String[] fields = optionsTxt.split(";");
使用以下字符串时,一切都很完美:
"House;Car;Street;Place" => [House] [Car] [Street] [Place]
但是当我使用下面的String时,split方法会忽略最后两个分号。
"House;Car;;" => [House][Car]
怎么了?或者有解决方法吗?
答案 0 :(得分:19)
尝试以下:
String[] = data.split(";", -1);
有关详细信息,请参阅Javadoc获取split方法的两个参数。
调用String.split(String)
时,会调用String.split(String, 0)
并丢弃尾随空字符串(正如文档中所说),当使用String.split(String, n)
调用n < 0
时,它不会丢弃任何东西。
答案 1 :(得分:1)
答案 2 :(得分:1)
Java API javadocs中明确提到了这一点:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
“因此,结尾数组中不包括尾随空字符串。”
如果您想要空字符串,请尝试使用相同方法的双参数版本,并使用负第二个参数:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String,%20int)
“如果n是非正数,则模式将被应用尽可能多次,并且数组可以具有任何长度。”
编辑:嗯,我与锚点的链接不起作用。