String.Split()函数 非原创
我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),其中用到了String.SPlit函数,所以可以上网查了该函数的使用方法 如下:
#中使用string.Split方法来分割字符串的注意事项:
string.Split给我们提供了非常灵活的使用方式, 但是如果使用不当, 会造成错误, 最近在做code review时, 看到大部分人这么使用:
string s = "A|B|:|C:D";
string[] ss = s.Split("|:|".ToCharArray());
//ss[0]: A
//ss[1]: B
//ss[2]:
//ss[3]:
//ss[4]: C
//ss[5]: D
其实他的本意是使用”|:|”将字符串分开的, 目标是为了得到数组: “A|B” 和 “C:D”, 但是没有直接找到Split(string)的重载, 所有就是用了ToCharArray(), 很显然, 得到的结果是错误的.
正确的用法为:
string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.None);
//ss1[0]: A|B
//ss1[1]: C:D
后一个参数, 是标志是否自动remove empty的数据. 例如: "A|B|:|C:D|:|" 做分割时, 会返回三个数组, 该数组的最后一个元素是空"", 如果我们想过滤掉这些空的元素, 可以使用参数: StringSplitOptions.RemoveEmptyEntries 即: string[] ss1= s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries);
例子:
s = "A|B|:|C:D|:|";
string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries);
//ss1[0]: "A|B"
//ss1[1]: "C:D"
ss1 = s.Split(new[] { "|:|" }, StringSplitOptions.None);
//ss1[0]: "A|B"
//ss1[1]: "C:D"
//ss1[2]: ""
首先我们看下String.Split 方法有6个重载函数:
2) public string[] Split(char[] separator, int count)
3) public string[] Split(char[] separator, StringSplitOptions options)
4) public string[] Split(string[] separator, StringSplitOptions options)
5) public string[] Split(char[] separator, int count, StringSplitOptions options)
6) public string[] Split(string[] separator, int count, StringSplitOptions options)
1. public string[] Split(params char[] separator)
string[] split = words.Split(new Char[] { ',', '.' });//返回:{"1","2","3","","4"}
2. public string[] Split(char[] separator, int count)
string[] split = words.Split(new Char[] { ',', '.' }, 6);//返回:{"1","2","3","","4"}
3. public string[] Split(char[] separator, StringSplitOptions options)
string[] split = words.Split(new Char[] { ',', '.' }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
4. public string[] Split(string[] separator, StringSplitOptions options)
string[] split = words.Split(new string[] { ",", "." }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
5. public string[] Split(char[] separator, int count, StringSplitOptions options)
string[] split = words.Split(new Char[] { ',', '.' }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
6. public string[] Split(string[] separator, int count, StringSplitOptions options)
string[] split = words.Split(new string[] { ",", "." }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
个人理解:Split 就是和String.Join相反的一个函数 它的作用是把一个字符串分隔成含有多个字段的数组
最新文章
- SQL Server 存储过程生成insert语句
- 【解决】SQL Server作业中Excel Application不能访问文件
- Java String.split()
- Android 应用自动更新功能的代码
- .Net设计模式_原型模式
- html使用css让文字多行超出部分用省略号三个点显示的方法案例
- ctags使用说明详解
- 团队项目:Recycle
- python小白——进阶之路——day2天-———容器类型数据(list,set ,tuple,dict,str)
- Linux下进程和端口常用操作
- springboot学习随笔(一):springboot环境构建:eclipse+maven+jdk1.8
- Dotest-两张图告诉你,为什么要测试兼容性?
- .net core中使用Type.GetType()从字符串获取类型遇到的问题
- 网络 --- 4 socketserver模块并发 连接合法性
- delimiters 插值 选项
- web component的理解
- bzoj千题计划286:bzoj1226: [SDOI2009]学校食堂Dining
- Chapter1(预科)--C++Prime笔记
- ZeroMQ API(八) 异常&;属性
- 在Ubuntu 12.04 桌面上设置启动器(快捷方式)
热门文章
- Java学习的第七天
- Android Google官方文档(cn)解析之——Intents and Intent filter
- leetcode144 longest-palindromic-substring
- WSL-Ubuntu18.04 磁盘迁移 与 ns3-gym 安装
- jQuery其他事件
- RTP协议解析及H264/H265 音视频RTP打包分析
- Nginx实例
- Spring Cloud注册中心之Zookeeper
- [C/C++] 结构体内存对齐:alignas alignof pack
- FTP的PORT(主动模式)和PASV(被动模式)