拆分逗号分隔忽略最后一项

时间:2015-09-29 08:37:32

标签: java string split

当我尝试拆分字符串值",,1,"时,它返回一个大小为3而不是4的数组。我该如何纠正?

代码:

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

返回:

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

4 个答案:

答案 0 :(得分:4)

如果需要,请使用否定的limit

public static void main(String... args) throws Exception {
     String values= ",,1,";
     System.out.println(Arrays.toString(values.split(",", -1)));
}

O / P:

[, , 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

答案 2 :(得分:0)

仅当分隔符符号位于字符串

的末尾时才会发生
if (values.charAt(values.length()-1) == ',')
    // Do something here

检查最后一个字符是否是你的分隔符号......

答案 3 :(得分:0)

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

你可以试试这个