关于split()方法,被分隔的字符串只含有分隔字符时,返回的数组长度为1

heerxiong 2016-08-22 10:58:36
String str="a;b;c;d";
String arr=str.split(";");
//那么arr.length=4; arr[0]="a", arr[1]="b", arr[2]="c", arr[3]="d"
//如果str=";;;";
//那么arr.length=1 arr[0]="", 我想让str=";;;" 时,arr[0]="", arr[1]="", arr[2]="", arr[3]="" 这个应该怎么做
...全文
535 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylovep 2016-08-24
  • 打赏
  • 举报
回复
str.split(";",-1);这个 -1 代表及时没有内容 也作为数组的一个。
SheldonCCC 2016-08-22
  • 打赏
  • 举报
回复
String str="a;b;c;d"; String[] arr=str.split(";"); 此时arr.length=4; String str=" ; ; ; "; String[] arr=str.split(";"); System.out.println(arr.length); for (int i = 0; i < arr.length; i++) { System.out.println("结果:"+arr[0]+","); }
小灯光环 2016-08-22
  • 打赏
  • 举报
回复
当str=";;;"的时候,由于原字符串中没有匹配的分隔符,所以返回了原字符串,也就是arr[0]="a;b;c;d" 可以看一下split函数的源码有这样一段:
   // If no match was found, return this
            if (off == 0)
                return new String[] { this };

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧