java使用split拆分为什么拆分符后边的没有了

发布网友

我来回答

5个回答

热心网友

出现问题先找到出现问题的地方。正常来说split(正则表达式),是没有问题的。
然后看你这里用了split(正则表达式,limit);
先分析一下这个方法,看源码得知,limit<0时表示数组长度没有*,limit>=0时,limit决定数组长度。每次根据正则表达式解析出第一个barrir时,将存入list,这个list长度被limit*。
你图中为limit=-1,不存在数组长度*。
讲道理是不会出现你那种情况的。
你可以尝试Arrays.toString(数组),打印它看看数组元素。
有问题再问我

热心网友

你的问题在于分隔符特殊,所以要写成option.split("\\,",-1);
经测试没有问题。

热心网友

emm......我试了下,另外我们字符串裁剪使用的都是org.apache.commons.lang 的 StringUtils
public static void main(String[] args) {
String s1 = "1,2,3,4,,,";
for (String s : s1.split(",", -1)) {
System.out.print("[" + s + "]");
}
System.out.println("");
System.out.println("");
System.out.println("使用org.apache.commons.lang 的 StringUtils:");
for (String s : StringUtils.splitByWholeSeparatorPreserveAllTokens(s1, ",")) {
System.out.print("[" + s + "]");
}
}
运行结果:
[1][2][3][4][][][]

使用org.apache.commons.lang 的 StringUtils:
[1][2][3][4][][][]

热心网友

可以试试,把负一去掉应该就可以了,
如果保护一锯条还是不行的话,
可能要重新做,
要重新做的话,
需要一定的时间,
但是为了达到目的的话,
也要重新去开始。

热心网友

把-1去掉就好了追问之前是去掉的 没用

追答你用数组接受一下然后打印下数组长度看看

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com