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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dugubaitian 中级黑马   /  2014-7-23 16:35  /  1370 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 dugubaitian 于 2014-7-23 20:58 编辑

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

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

3 个回复

正序浏览
  string s="123-456--789---123-----2";
通过split命令去掉字符串中的“-”,只是将“-”从字符串中分隔了出去,而“-”所占的位置就成了空字符,空字符串在内存中也是占用空间的,也就是空字符串也是一种字符串,所有只有后边在加上RemoveEmptyEntries命令后,空字符串才会被去掉,这里我就想到了string str=null;和string  str="";   这是我的理解。。。。。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报 1 0
许庭洲 发表于 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 16:52 编辑

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

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

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