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相反的一个函数 它的作用是把一个字符串分隔成含有多个字段的数组
String.Split()函数 非原创的更多相关文章
- java String.split()函数的用法分析
java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...
- String.Split()函数
我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),当中用到了String.SPl ...
- String.Split()函数 多种使用实例
我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),其中用到了String.SPl ...
- Java——String.split()函数
在java doc里有 String[] java.lang.String.split(String regex) Splits this string around matches of the g ...
- 【转】java String.split()函数的用法分析
在java.lang包中有String.split()方法的原型是: public String[] split(String regex, int limit) split函数是用于使用特定的切 ...
- [java]java String.split()函数的用法分析
转自:http://swiftlet.net/archives/709 一.在java.lang包中有String.split()方法的原型是: public String[] split(Strin ...
- Java String.split()函数分隔回车注意事项
作者:Sun1956 原文:https://blog.csdn.net/sun1956/article/details/45096117 --------------------- 我们在Java中如 ...
- Java 的 String.split 函数,消除空字符串
代码: String str = "the music made it hard to concentrate"; String delims = "[ ]+" ...
- string.Split函数
正文 string str = "a---b---c"; string[] array = str.Split(new char[]{'-'}); 分割之后array中的元素为 分 ...
随机推荐
- python实现有趣的数学逻辑程序
1.无重复数字的三位数 题目:有1.2.3.4个数字, 能组成多少个互不相同且无重复数字的三位数? 都是多少? for i in range(1,5): for j in range(1,5): fo ...
- LWJGL3的内存管理,第三篇,剩下的两种策略
LWJGL3的内存管理,第三篇,剩下的两种策略 上一篇讨论的基于 MemoryStack 类的栈上分配方式,是效率最高的,但是有些情况下无法使用.比如需要分配的内存较大,又或许生命周期较长.这时候就可 ...
- 秒懂Dubbo接口(原理篇)
引言 背景 单一应用架构 垂直应用架构 分布式服务架构 流动计算架构 为什么要用 Dubbo? 什么是分布式? 为什么要分布式? Dubbo 的架构 Dubbo 的架构图解 Dubbo 工作原理 Du ...
- linux 查看和设置主机名
1.设置主机名 通过编辑/etc/sysconfig/network文件中的HOSTNAME字段就可以修改主机名.如下所示: [root@zijuan /]# vim /etc/sysconfig/n ...
- fflush(stdin)和fflush(stdout)
转自:http://blog.csdn.net/yeyuangen/article/details/6743416 fflush(stdin)即清理标准输入流,把多余的仍未被保存的数据丢掉. fflu ...
- 服务器性能监控神器nmon使用介绍
介绍 Nmon (Nigel's Monitor)是由IBM 提供.免费监控 AIX 系统与 Linux 系统资源的工具.该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 exc ...
- 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路
有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...
- Android Google官方文档解析之——Application Fundamentals
Android apps are written in the java programming language.The Android SDK tools compile your code-al ...
- c#连接mysql答题步骤
引用mysql数据库 using MySql.Data.MySqlClient; 有一个mysql.dll文件 下面是实例化连接数据库 MySqlConnection Conn = new MySql ...
- 什么是麒麟(kylin)?查数据贼快的哟
前言 微信搜[Java3y]关注这个有梦想的男人,点赞关注是对我最大的支持! 文本已收录至我的GitHub:https://github.com/ZhongFuCheng3y/3y,有300多篇原创文 ...