为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3242003 2019-04-19 14:15:59
代码 ",,,,".split(',')我想得到Array('','','','')但结果我却得到了Array()有什么办法能得到我想要的结果呢。。。
查看完整描述

6 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

可以使用含有两个参数的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种“奇葩”的做法,都不知道被人骂过多少次了......


查看完整回答
反对 回复 2019-05-07
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

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

查看完整回答
反对 回复 2019-05-07
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-05-07
?
阿晨1998

TA贡献2037条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-05-07
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-05-07
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

长度自己写死吧吧,split默认忽略末尾的空字段的,或者可以算出,的个数然后再在末尾拼足够的空字符吧


查看完整回答
反对 回复 2019-05-07
  • 6 回答
  • 0 关注
  • 467 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号