我希望拆分一个字符串,但也保留空值。例如,我有一个这样的字符串:
String x = "x,y";
String result[] = y.split(",");
// then i will get result like this:
//result[] = ["x","y"]
但如果我有这样的字符串:
String y = "x,";
String result[]=y.split(",");
//i will get something thing like this:
//result[] = ["x"]
我希望保持空值。我是否可以使用result[]=["x",""]
方法得到这样的结果:split
?
答案 0 :(得分:6)
双参数 split
的答案在javadoc中:
limit参数控制模式的次数 应用因此会影响结果数组的长度。如果 限制n大于零,那么模式将应用于 大多数n - 1次,数组的长度不会大于n,并且 数组的最后一个条目将包含除最后一个匹配之外的所有输入 分隔符。如果n是非正数,那么该模式将被应用为 尽可能多次,阵列可以有任何长度。如果n为零 那么模式将尽可能多地应用于数组 可以有任何长度,尾随空字符串将被丢弃。
单参数split
的{{3}}表示:
此方法的工作方式就像通过调用双参数split方法一样 给定的表达式和一个零的限制参数。尾随空 因此,字符串不包含在结果数组中。
2参数javadoc的最后两个句子意味着limit
的负值与零值具有相同的行为(与单参数split
的行为相同)除外尾随空字符串。因此,如果您想保留尾随的空字符串,则限制的任何负值都将起作用。因此:
String result[] = y.split(",", -1);