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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xjqalec32 中级黑马   /  2015-4-5 20:49  /  468 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xjqalec32 于 2015-4-5 20:53 编辑

split(String regex)是String类中的一个函数,作用是以字符串类型为分割符来切割原字符串,返回值是String[]。

但是编写了几个代码后发现,就像毕老师说的一样,位于末位的连续几个切割符并不会分割出空的String类数组成员;


例:
class  Test
{
        public static void main(String[] args)
        {
                String s="asd1asd";
                String s1="1asd1asd1";
                String s11="11asd1asd11";
               
                String[] arr=s.split("1");
                String[] arr1=s1.split("1");
                String[] arr11=s11.split("1");
               
                printArr(arr);
                printArr(arr1);
                printArr(arr11);

        }
        static void printArr(String[] arr)
        {
        for (int x=0; x<arr.length;x++ )
                {
                        System.out.print("\'"+arr[x]+"\'"+"\t");
                        if (x==arr.length-1)
                        {
                                System.out.println();
                        }
                }
        }
}




结果如下:
'asd'     'asd'
''          'asd'     'asd'
''          ''           'asd'       'asd'




可以看到末位连续切割符没起作用,这也是为什么不能用split函数来计算一个字符串中某字符串出现的次数的原因了!


9 个回复

倒序浏览
谢谢   学习了
回复 使用道具 举报
如果能探究一下原因就更好了
回复 使用道具 举报
马士基 发表于 2015-4-5 22:17
如果能探究一下原因就更好了

java里这个函数就是这样定义的
回复 使用道具 举报
看下java源码就知道了
回复 使用道具 举报
学习了,原来第一位会切一个空字符串出来,末位就无视掉啊。
回复 使用道具 举报
谢谢,学习了
回复 使用道具 举报
看不懂啊
回复 使用道具 举报
学习了!多谢分享~
回复 使用道具 举报
O(∩_∩)O谢谢分享~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马