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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡志涛 中级黑马   /  2013-6-13 17:29  /  2165 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蔡志涛 于 2013-6-13 23:33 编辑

下面的代码,为什么最后屏幕输出的结果是4,也就为什么被分割成了4块,而且为什么其中一个块是空格?
            string dateTime = "2000--08-08";
            string[] strArray = dateTime.Split(new char[] { '-' });
            Console.WriteLine(strArray.Length);


评分

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

查看全部评分

8 个回复

倒序浏览
2000--08-08
第一块2000。结果为--08-08.
到了第二步变-成了0。结果为08-08.
第三步08.一此类推,所以就是四块哦。

回复 使用道具 举报
2000--08-08 你是按“-”分割 ,第一块是2000,第二块是"-""-"中间那部分,因为里面啥也没有所以用空格代替,第三部分是08,第四部分是08

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
索引从  0  开始、 你要截取 “—”  从2开始数,“—”是在4的位置
回复 使用道具 举报
发表于 2 小时前 | 只看该作者
2000--08-08 你是按“-”分割 ,第一块是2000,第二块是"-""-"中间那部分,因为里面啥也没有所以用空格代替,第三部分是08,第四部分是08
正解!
回复 使用道具 举报
王鹏程 发表于 2013-6-13 17:50
2000--08-08 你是按“-”分割 ,第一块是2000,第二块是"-""-"中间那部分,因为里面啥也没有所以用空格代替, ...

恩,谢谢了
回复 使用道具 举报
彭康 中级黑马 2013-6-13 21:16:22
7#
strArray[0] =2000
strArray[1] =""
strArray[2] =08
strArray[3] =08

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
陈壹 中级黑马 2013-6-14 13:34:47
8#
用split分割字符串是,假使两个分隔符相连或字符串最后一个字符为分隔符,系统在分割时都会相应产生一个空字符成为数组的成员,在这种情况下使用split重载中的
StringSplitOptions.RemoveEmptyEntries 指令,自动清除空字符,以你的例子写法是
string[] strArray = dateTime.Split('-',StringSplitOptions.RemoveEmptyEntries );

回复 使用道具 举报
你在2000和08之间有两个-,所以分割开来是-和-中间的值是空格,结果是这样的,第一部分是2000第二部分按照第一个-分割后产生一个"",然后再按下一个-分割出08,最后一个-再分割出最后一部分08
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马