1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#中使用string.Split方法来分割字符串的注意事项:

C#中使用string.Split方法来分割字符串的注意事项:

时间:2022-12-23 17:46:51

相关推荐

C#中使用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]: ""

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。