A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 2013-1-16 11:25 编辑

String str = "a,b,c";
String[] strs = str.split("");

得到的strs数组长度是str.length()+1;
strs的长度为0

谁能给解释下原理啊?

2 个回复

正序浏览
我将程序改了下
           String str = "a,b,c";
                    String[] strs = str.split("");
                    for(int i = 0;i<strs.length;i++){
                            System.out.println("--"+strs[i]+"--");
                    }
                    System.out.println("--"+strs[0]+"--");
                    System.out.println(strs.length);
打印的结果为
----
--a--
--,--
--b--
--,--
--c--
----
6

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个

查看全部评分

回复 使用道具 举报
在分割的时候JVM会先找到一个空字符用于进行分隔,在找到的第一个字符a以前会找到一个空位,从这个空位进行分隔,但是这个空位的前面没有东西,所以这个位置是空的,所以长度为0,a , b , c中每一个字符占一个位子,前面加上一个空位子,所以得到的strs数组长度是str.length()+1;和strs[i]的长度为0的结果

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马