关于java 的split,求大神解决一下啊

代码 ",,,,".split(',')

我想得到Array('','','','')
但结果我却得到了Array()

有什么办法能得到我想要的结果呢。。。


慕妹3242003
浏览 468回答 6
6回答

缥缈止盈

可以使用含有两个参数的split方法,如",,,,".split(",", -1),你调用的那个含有一个参数的方法默认实现如下: public String[] split(String regex) {return split(regex, 0);}public String[] split(String regex, int limit)第二个参数(limit):1. 若是正数n,返回数组的长度最大为n(如传入5,反回的数组长度为最大值5,传100也将是5)2. 若是负数,如-1,则返回数组的长度尽可能地大(就本问题而言,推荐采用这种方法)3. 若是0,它拆分后会移除后面的空字符串,内部大致实现:先拆分得到一个list,resultSize=list.size(),从末尾resultSize-1开始往前循环遍历,若list.get(resultSize-1)为空字符串,使resultSize-=1,直到遇到非空字符串或resultSize=0为止;然后再调用list.subList(0, resultSize).toArray(new String[0])得到结果数组因此",,,,".split(",")将先得到一个含有5个空字符串的列表,即resultSize=5,然后从后往前依次检查,遇到一个空字符串,就将resultSize-=1,由于5个元素都是空字符串,最终resulSize=0,子列表为空,数组也为空了对第3种“奇葩”的做法,都不知道被人骂过多少次了......

慕尼黑8549860

split的字符是作为界符的,本身不会出现在拆分结果中。如果你要拆分字符串的每个字符,用toCharArray

吃鸡游戏

",,,,".split(",",100)

阿晨1998

用这样char[] c=",,,,".toCharArray();for(int i=0;i<c.length;i++){System.out.println(c[i]);}

一只斗牛犬

看下 ",,,,".split(',').length 的长度

慕田峪4524236

长度自己写死吧吧,split默认忽略末尾的空字段的,或者可以算出,的个数然后再在末尾拼足够的空字符吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java