分割逗号分隔符忽略最后一个项目。

3
当我尝试分割一个字符串值",,1,"时,它返回的数组大小为三而不是四。我该如何纠正?
代码:
    String values= ",,1,";
    values.split(",");

返回:

    [0]=""
    [1]=""
    [2]=1

2
使用 values.split(",", -1) - Nishant Kumar
4个回答

4
如果您需要这个功能,那么请使用一个负的limit
public static void main(String... args) throws Exception {
     String values= ",,1,";
     System.out.println(Arrays.toString(values.split(",", -1)));
}

输出:

[, , 1, ]

2

试试这个:

String values= ",,1,";
String[] val =  values.split(",", -1);

String.split(String regex, int limit)的两个参数版本

如果限制n大于零,则模式最多应用n-1次,数组的长度不会超过n,并且数组的最后一个条目将包含所有匹配分隔符之后的输入。 如果n为非正数,则模式将尽可能地应用,数组可以具有任何长度。 如果n为零,则模式将尽可能地应用,数组可以具有任何长度,并且尾随空字符串将被丢弃。

这是此方法的javadoc参考:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29


0

只有当分隔符号在字符串末尾时才会发生这种情况

if (values.charAt(values.length()-1) == ',')
    // Do something here

只需检查最后一个字符是否为您的分隔符号...


0
String values= ",,1,";
values.split(",",values.length());

你可以试试这个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接