拆分字符串并保持空值

时间:2017-07-24 06:15:37

标签: java string split

我希望拆分一个字符串,但也保留空值。例如,我有一个这样的字符串:

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

1 个答案:

答案 0 :(得分:6)

双参数 split的答案在javadoc中:

  

limit参数控制模式的次数   应用因此会影响结果数组的长度。如果   限制n大于零,那么模式将应用于   大多数n - 1次,数组的长度不会大于n,并且   数组的最后一个条目将包含除最后一个匹配之外的所有输入   分隔符。如果n是非正数,那么该模式将被应用为   尽可能多次,阵列可以有任何长度。如果n为零   那么模式将尽可能多地应用于数组   可以有任何长度,尾随空字符串将被丢弃。

单参数split的{​​{3}}表示:

  

此方法的工作方式就像通过调用双参数split方法一样   给定的表达式和一个零的限制参数。尾随空   因此,字符串不包含在结果数组中。

2参数javadoc的最后两个句子意味着limit的负值与零值具有相同的行为(与单参数split的行为相同)除外尾随空字符串。因此,如果您想保留尾随的空字符串,则限制的任何负值都将起作用。因此:

String result[] = y.split(",", -1);