c#中分割字符串的⽅法
c#中分割字符串的⽅法
第⼀种⽅法:打开vs新建⼀个控制台项⽬。然后在Main()⽅法下输⼊下⾯的程序。
string s="abcdeabcdeabcde";
string[] sArray=s.Split(''c'');
writeline使用方法pythonforeach(string i in sArray)
Console.WriteLine(i.ToString());
输出下⾯的结果:ab
deab
deab
de
我们看到了结果是以⼀个指定的字符进⾏的分割。
如果我们希望使⽤多个字符进⾏分割如c,d,e如何做呢?
好,我们使⽤另⼀种构造⽅法:
更改为 string s="abcdeabcdeabcde
string[] sArray1=s.Split(new char[3]{''c'',''d'',''e''});
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以输出下⾯的结果:ab
ab
ab
除了以上的这两种⽅法以外,
第三种⽅法是使⽤正则表达式。新建⼀个控制台项⽬。
然后先添加 using System.Text.RegularExpressions;
'www.knowsky
Main() :中更改为
System.Text.RegularExpressions
string content="agcsmallmacsmallgggsmallytx";
string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)
foreach(string i in resultString)
Console.WriteLine(i.ToString());
输出下⾯的结果:agc
mac
ggg
ytx
C#中使⽤string.Split⽅法来分割字符串的注意事项:
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[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]: ""
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论