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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 公子-醉香 中级黑马   /  2013-12-18 10:14  /  869 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. String s2="this is a test";
  2. String sarray[]=s2.split("\\S");
  3. System.out.println("sarray.length="+sarray.length);
  4. 这个问题的输出结果是8,这是为什么
  5. 如果输入
  6. String s2="this" 输出是0
  7. String s2="this " 输出是5
  8. Sstinrg s2="this is"输出还是5
复制代码


评分

参与人数 1黑马币 +5 收起 理由
乔兵 + 5

查看全部评分

3 个回复

倒序浏览
split(String regex)
          根据给定正则表达式的匹配拆分此字符串。\\S 非空白字符:[^\s]
不是以空格或回车的开头和结尾都会被截取到;你试试输出你这个s2.split(\\S)数组就明白了;你也可以数数不是以空格的开头刚好是4*2=8个.

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
"\\S"是表示的是非空字符,这是要理解的第一点,第二点就是,split()这个函数,他分解字符转,如果后面的字符是空的就会略去,其实最好的办法是写一个循环观察以下,
public static void main(String[] args) {
                String s2="this is a test";
                String sarray[] = s2.split("\\S");
                System.out.println(sarray.length);
                for(int i=0;i<sarray.length;i++){
                        System.out.println(sarray[i]+"---"+i);
                }
        }
这样你替换字符串,观察结果,一看就知道其性质了

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

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