当我尝试拆分字符串值",,1,"
时,它返回一个大小为3而不是4的数组。我该如何纠正?
代码:
String values= ",,1,";
values.split(",");
返回:
[0]=""
[1]=""
[2]=1
答案 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());
你可以试试这个