c#中分割字符串的方法

c#中分割字符串的方法

第一种方法:打开vs.net新建一个控制台项目。然后在Main()方法下输入下面的程序。

      string s="abcdeabcdeabcde";

       string[] sArray=s.Split(''c'');

       foreach(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;
'http://www.knowsky.com
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

=====================================================================

转载声明:本文转自http://hi.baidu.com/e_book/blog/item/3c0cbe1cb67c898e86d6b63f.html

=====================================================================

 

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

=====================================================================

转载声明:本文转自http://luchuxiang.blog.163.com/blog/static/1901506020093610134396/

=====================================================================

posted @ 2009-12-29 19:27  程序员天下  阅读(342)  评论(0编辑  收藏  举报