黑马程序员技术交流社区

标题: split [打印本页]

作者: dugubaitian    时间: 2014-7-23 16:35
标题: split
本帖最后由 dugubaitian 于 2014-7-23 20:58 编辑

             string s="123-456--789---123-----2";
            string[] snew=s.Split(new char[]{'-'});
  解释一下原理,为什么会出现空字符串,分隔符在此过程中是怎么工作的??


作者: 许庭洲    时间: 2014-7-23 16:46
本帖最后由 许庭洲 于 2014-7-23 16:52 编辑

1. 分隔符号连续出现就会输出空格;
2. string[] snew=s.Split(new char[]{'-'});//string[] snew=s.Split(char[]{'-'},StringSplitOptions Options)(options取 RemoveEmptyEntries的时候移除结果中的空白字符串)


作者: dugubaitian    时间: 2014-7-23 17:55
许庭洲 发表于 2014-7-23 16:46
1. 分隔符号连续出现就会输出空格;
2. string[] snew=s.Split(new char[]{'-'});//string[] snew=s.Split( ...

thanks!!   问题就在于纠结  分隔符连续了为什么就会出现空格??
像上面的例子: 123-456--789----123                    第一分隔符成123   456
                                                                        第二分隔符成“”  789
作者: 梦里不知身是客    时间: 2014-7-23 20:40
  string s="123-456--789---123-----2";
通过split命令去掉字符串中的“-”,只是将“-”从字符串中分隔了出去,而“-”所占的位置就成了空字符,空字符串在内存中也是占用空间的,也就是空字符串也是一种字符串,所有只有后边在加上RemoveEmptyEntries命令后,空字符串才会被去掉,这里我就想到了string str=null;和string  str="";   这是我的理解。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2