惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
博客园 - Franky
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
D
Docker
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
H
Help Net Security
B
Blog
宝玉的分享
宝玉的分享

博客园 - yuanws

【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。 html端编码规范 SQL对Xml字段的操作 NOSQL: mongoDB windows 更新webconfig配置文件 SQL Server中存储过程比直接运行SQL语句慢的原因 7个变态问题 答对4个说明你已经变态了,很悬的哦 C#时间函数的用法C#时间格式输出 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言) C#抽象类和抽象方法 子类与父类的方法关系 (虚方法) C#中Invoke的用法 C# Thread Lambda 行变列 case [转]SqlServer四个排名函数(row_number、rank、dense_rank和ntile)的比较 SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用 SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL 改变自己的128种方法 小技巧
C#中使用string.Split 用字符串分隔
yuanws · 2011-12-09 · via 博客园 - yuanws

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]: ""