当前位置:编程学习 > C#/ASP.NET >>

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;

    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

    使用正则表达式有什么好处呢? 别着急,后面我们会看到它的独特之处。

    下面介绍第4种方法。比如    string str1="我*****是*****一*****个*****教*****师";

    如果我希望显示为:我是一个教师,  ,如何作呢?

    我们可以使用下面代码:       string str1="我*****是*****一*****个*****教*****师";

    string[] str2;str1=str1.Replace("*****","*");   str2=str1.Split(‘*‘); foreach(string i in str2)       Console.WriteLine(i.ToString());  这样也可以得到正确结果。但是比如    string str1="我**是*****一*****个*****教*****师";

    我希望显示的结果为:我是一个教师。
   
    我如果采用上面的第四种方法来做就会产生下面的错误:我   是一个教师      中间有空格输出,所以输出结果并不是我希望的结果,如何解决呢?这就又回到了正则表达式了(这里可以看到它的功能强大之处),这时可以采用下面的第五种方法: string str1="我**是*****一*****个*****教*****师";string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@"[*] "); foreach(string i in str2)Console.WriteLine(i.ToString());

    这里通过"[*] " 巧妙的完成了我们的目标。ch(string i in str2)Console.WriteLine(i.ToString());

    这里通过"[*] " 巧妙的完成了我们的目标。
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,