• C#string,StringBuilder和Regex类的讲解


    讲解

    字符串的声明与初始化以及获得字符串的长度范例
      范例一
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
       string string1;//声明一个名称为string1的字符串
       string1="I Love C#";//对string1进行赋值为"I Love C#",注意不要忘记 "" 符号
       Console.WriteLine("string1={0}",string1);
       Console.WriteLine("string1的长度为{0}",string1.Length);

       string string2="I Love C#";//声明一个名称为string2的字符串并且赋值为"I Love C#"
       Console.WriteLine("string2={0}",string2);
       Console.WriteLine("string2的长度为{0}",string2.Length);
      }
     }
    }
    运行结果
    string1=I Love C#
    string1的长度为9
    string2=I Love C#
    string2的长度为9
    Press any key to continue


    2:利用“+”运算符将两个字符串或者多个字符串相连接以及Concat()方法的用法

      范例一
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string string1;//声明一个名称为string1的字符串
       string1="I Love C#";//对string1进行赋值为"I Love C#",注意不要忘记 "" 符号
       Console.WriteLine("string1={0}",string1);

       string string2="I Love Java";//声明一个名称为string2的字符串并且赋值为"I Love C#"
       Console.WriteLine("string2={0}",string2);
               
       Console.WriteLine("运用+运算符将string1和string2进行连接:");
       string string3=string1+" "+string2;
       Console.WriteLine("string3={0}",string3);
      }
     }
    }
    运行结果
    string1=I Love C#
    string2=I Love Java
    运用+运算符将string1和string2进行连接:
    string3=I Love C# I Love Java
    Press any key to continue

      范例二:方法Concat()的用法
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str1="hello java";
       string str2="hello world";
          Console.WriteLine("使用方法Concat()将str1和str2相连后内容为-->{0}",string.Concat(str1," && ",str2));
      }
     }
    }
    运行结果为:

    使用方法Concat()将str1和str2相连后内容为-->hello java && hello world
    Press any key to continue

    字符串的比较与运算符范例
      范例一
     在下面的范例中需要我们掌握的方法有
    1:Compare(string str1,string str2,bool b)如果b为true则在比较的时候忽略大小写,反之为false
    2:Compare(string str1,string str2)
    3:CompareTo()
    4:StartsWith()
    5:EndsWith()
    6:IndexOf()
    7:LastIndexOf()
    对于上面的这些方法在下面的范例中可以看出其各自的用法。请看范例
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str1="I Love C#";
       string str2="I Love c#";
       string str3="I Love Java";
       Console.WriteLine("str1是否等于str2:-->{0}",string.Compare(str1,str2));
       Console.WriteLine("str1在忽略大小写的情况下是否等于str2-->{0}",string.Compare(str1,str2,true));
       Console.WriteLine("str1是否等于str3-->{0}",str1.CompareTo(str3));
                Console.WriteLine("str1的第0个字符是否与str3的第0个字符相等-->{0}",string.Compare(str1,0,str2,0,2));
       Console.WriteLine("str1的第7个字符是否与str3的第7个字符相等-->{0}",string.Compare(str1,7,str2,7,2));
       Console.WriteLine("str1的第7个字符是否与str3的第7个字符在忽略大小写的情况下相等-->{0}",string.Compare(str1,7,str2,7,2,true));
       Console.WriteLine("str1是否以字符'I'开头-->{0}",str1.StartsWith("I"));
       Console.WriteLine("str1是否以字符'i'开头-->{0}",str1.StartsWith("i"));
       Console.WriteLine("str2是否以c# 结尾-->{0}",str2.EndsWith("c#"));

                Console.WriteLine("字符串‘L’为字符串{0}第{1}个字符:",str3,str3.IndexOf('L'));
       Console.WriteLine("字符'L'在字符串{0}中最后出现的位置为{1}",str3,str3.LastIndexOf('L'));
      }
     }
    }
    运行结果
    str1是否等于str2:-->1
    str1在忽略大小写的情况下是否等于str2-->0
    str1是否等于str3-->-1
    str1的第0个字符是否与str3的第0个字符相等-->0
    str1的第7个字符是否与str3的第7个字符相等-->1
    str1的第7个字符是否与str3的第7个字符在忽略大小写的情况下相等-->0
    str1是否以字符'I'开头-->True
    str1是否以字符'i'开头-->False
    str2是否以c# 结尾-->True
    字符串‘L’为字符串I Love Java第2个字符:
    字符'L'在字符串I Love Java中最后出现的位置为2
    Press any key to continue


    字符串的分割与获取
       String类提供了一个方法Split用以切割字符串,此方法返回一个所有分割子字符串的数组对象,可以经过数组取得所有分割的子字符串。请看下面的范例
      范例一
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str="How are you:what's you name:I love java";
          string result="";
       char split=':';
       foreach(string s in str.Split(split)){
          result+=s+'\n';
       }
       Console.WriteLine(result);
      }
     }
    }
    运行结果
    How are you
    what's you name
    I love java

    Press any key to continue
    范例二
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str="How.are you:what's. you name:I. love java";
          string result="";
       char [] split=new char[] {':','.'};
       foreach(string s in str.Split(split)){
          result+=s+'\n';
       }
       Console.WriteLine(result);
      }
     }
    }
    运行结果
    How
    are you
    what's
     you name
    I
     love java

    Press any key to continue
     
      方法Equals()和"=="的用法
    范例一
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                            string str1="hello java";
       string str2="hello java";
       
       Console.WriteLine("str1.Equals(str2)-->{0}",str1.Equals(str2));
       Console.WriteLine("str1==str2-->{0}",(str1==str2));
      }
     }
    }
    运行结果
    str1.Equals(str2)-->True
    str1==str2-->True
    Press any key to continue

    获取字符串范例
      String类提供了Substring(int i)方法,获取变量i以后的子字符串,包括i本身。请看下面的范例
    范例一:
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str="zhong hua ren min gong he guo";
       Console.WriteLine("原始字符串为-->{0}",str);
       Console.WriteLine("获取第6个字符以后的字符串为-->{0}",str.Substring(6));

       
      }
     }
    }
    运行结果
    原始字符串为-->zhong hua ren min gong he guo
    获取第6个字符以后的字符串为-->hua ren min gong he guo
    Press any key to continue

    字符的删除,插入,与大小写的转换
      范例一:在下面的范例中需要我们掌握的方法如下
    1:TrimStart()
    2:TrimEnd()
    3:Remove()
    4:Insert()
    5:PadLeft()
    6:PadRight
    7:ToUpper()
    8:ToLower()
    9:Trim()
    using System;

    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str1=" hello";
       string str2="java ";
       string str3=" hello java ";
       Console.WriteLine("str1的原始字符串为{0}-->"+str1);
       Console.WriteLine("使用TrimStart()方法将字符串{0}左边的空格删除后字符串为-->{1}",str1,str1.TrimStart());
       Console.WriteLine("使用remove()方法删除第0个字符以后的3个字符后,str1的内容为-->{0}",str1.Remove(0,3));
       Console.WriteLine("在str1的第6个字符中加入一个字符'*',后str1的内容为-->{0}",str1.Insert(6,"*"));
       Console.WriteLine("在str1的左边加上二个‘+’符号后str1的内容为-->{0}",str1.PadLeft(8,'+'));
       Console.WriteLine("在str1的右边加上二个‘+’符号后str1的内容为-->{0}",str1.PadRight(8,'+'));
       Console.WriteLine("把str1的内容转换为大写后为-->{0}",str1.ToUpper());
       Console.WriteLine("把str1的内容转换为小写后为-->{0}",str1.ToLower());
       Console.WriteLine("_________________________________________________________");
       Console.WriteLine("str2的原始字符串为-->{0}",str2);
       Console.WriteLine("使用TrimEnd()方法将字符串{0}右边的空格删除后字符串为-->{1}",str2,str2.TrimEnd());
       Console.WriteLine("使用remove()方法删除第2个字符以后的2个字符后,str1的内容为-->{0}",str2.Remove(2,3));
       Console.WriteLine("在str2的第4个字符中加入一个字符'*',后str2的内容为-->{0}",str2.Insert(4,"*"));
       Console.WriteLine("在str2的左边加上二个‘+’符号后str2的内容为-->{0}",str2.PadLeft(7,'+'));
       Console.WriteLine("在str2的右边加上二个‘+’符号后str2的内容为-->{0}",str2.PadRight(7,'+'));   
       Console.WriteLine("把str2的内容转换为大写后为-->{0}",str2.ToUpper());
       Console.WriteLine("把str2的内容转换为小写后为-->{0}",str2.ToLower());
       Console.WriteLine("_________________________________________________________");
       Console.WriteLine("str3的原始字符串为-->{0}",str3);
                Console.WriteLine("使用Trim()方法将字符串{0}两边的空格删除后字符串为-->{1}",str3,str3.Trim());
       Console.WriteLine("使用remove()方法删除第6个字符以后的3个字符后,str1的内容为-->{0}",str3.Remove(6,5));
       Console.WriteLine("在str3的第1个字符中加入一个字符'*',在第12个字符中插入‘*’后str3的内容为-->");
       Console.WriteLine(str3.Insert(1,"*").Insert(12,"*"));
       Console.WriteLine("在str3的左边加上二个‘+’符号后str3的内容为-->{0}",str3.PadLeft(14,'+'));
       Console.WriteLine("在str3的右边加上二个‘+’符号后str3的内容为-->{0}",str3.PadRight(14,'+'));
       Console.WriteLine("把str3的内容转换为大写后为-->{0}",str3.ToUpper());
                Console.WriteLine("把str3的内容转换为小写后为-->{0}",str3.ToLower());
      }
     }
    }
    运行结果
    在str1的第6个字符中加入一个字符'*',后str1的内容为--> hello*
    在str1的左边加上二个‘+’符号后str1的内容为-->++ hello
    在str1的右边加上二个‘+’符号后str1的内容为--> hello++
    把str1的内容转换为大写后为--> HELLO
    把str1的内容转换为小写后为--> hello
    _________________________________________________________
    str2的原始字符串为-->java
    使用TrimEnd()方法将字符串java 右边的空格删除后字符串为-->java
    使用remove()方法删除第2个字符以后的2个字符后,str1的内容为-->ja
    在str2的第4个字符中加入一个字符'*',后str2的内容为-->java*
    在str2的左边加上二个‘+’符号后str2的内容为-->++java
    在str2的右边加上二个‘+’符号后str2的内容为-->java ++
    把str2的内容转换为大写后为-->JAVA
    把str2的内容转换为小写后为-->java
    _________________________________________________________
    str3的原始字符串为--> hello java
    使用Trim()方法将字符串 hello java 两边的空格删除后字符串为-->hello java
    使用remove()方法删除第6个字符以后的3个字符后,str1的内容为--> hello
    在str3的第1个字符中加入一个字符'*',在第12个字符中插入‘*’后str3的内容为-->
     *hello java*
    在str3的左边加上二个‘+’符号后str3的内容为-->++ hello java
    在str3的右边加上二个‘+’符号后str3的内容为--> hello java ++
    把str3的内容转换为大写后为--> HELLO JAVA
    把str3的内容转换为小写后为--> hello java
    Press any key to continue


    Join()方法的用法范例
     范例一:
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
       string [] str1={"I","am","a","student"};
       Console.WriteLine("str1的原始内容为:");
       for(int i=0;i<str1.Length;i++){
          Console.Write(str1[i]+" ");
       }
       Console.WriteLine("\n以下是使用Join方法后输出的str1的内容:");
       Console.WriteLine(string.Join(".",str1));
      }
     }
    }
    运行结果为
    str1的原始内容为:
    I am a student
    以下是使用Join方法后输出的str1的内容:
    I.am.a.student
    Press any key to continue

    Clone()方法的使用范例
      范例一
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
       string str1="hello world";
       Console.WriteLine("str1-->{0}",str1);
       Console.WriteLine("使用Clone()方法创建一个和str1相同的字符串str2");
       string str2=(string)str1.Clone();
       Console.WriteLine("str2-->{0}",str2);
      }
     }
    }
    运行结果
    str1-->hello world
    使用Clone()方法创建一个和str1相同的字符串str2
    str2-->hello world
    Press any key to continue


    CopyTo()方法的用法范例
    范例一
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
       string str1="hello world";
       char [] array=new char[str1.Length];
       str1.CopyTo(0,array,0,str1.Length);
       Console.WriteLine(str1);
      }
     }
    }


    StringBuilder类的用法范例
     StringBuilder可以根据情况动态的调整大小,对于其它的我们在这里就不多说了,但是必须记住如果我们要使用StringBuilder,必须将using System.Text导出。下面请看一个 范例,如果掌握了这个范例里出现的方法,那么对于StringBuilder我们也就可以说能运用自如了。
    范例一:
    在这个范例中出现的方法为
    1:Capacity
    2:Length
    3:Append()
    4:Replace()
    5:Insert()
    6:Remove()
    using System;
    using System.Text;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                StringBuilder sb1=new StringBuilder();
       Console.WriteLine("sb1的初始容量为:-->{0}",sb1.Capacity);
       Console.WriteLine("sb1的初始长度为:-->{0}",sb1.Length);

       sb1.Append("hello world");
       Console.WriteLine("向sb1中添加后sb1的容量为:-->{0}",sb1.Capacity);
       Console.WriteLine("向sb1中添加后sb1的长度为:-->{0}",sb1.Length);

       sb1.Append(" hello C# zhong hua ren min gong he guo ");
       Console.WriteLine("在次向sb1中添加后sb1的容量为:-->{0}",sb1.Capacity);
       Console.WriteLine("在次向sb1中添加后sb1的长度为:-->{0}",sb1.Length);

       StringBuilder sb2=new StringBuilder("I Love java",30);
       Console.WriteLine("the original text of sb2 are:");
       Console.WriteLine(sb2);
       Console.WriteLine("使用replace方法将sb2中的java换成C#后内容为:");
       Console.WriteLine(sb2.Replace("java","C#"));
                Console.WriteLine("使用insert方法在sb2第七个字符中添加'java and '后sb2的内容为");
       Console.WriteLine(sb2.Insert(7,"java and "));
       Console.WriteLine("使用remove方法将sb2中第0个字符以后的6删除后sb2的内容为:");
       Console.WriteLine(sb2.Remove(0,7));
      
      }
     }
    }
    运行结果
    sb1的初始容量为:-->16
    sb1的初始长度为:-->0
    向sb1中添加后sb1的容量为:-->16
    向sb1中添加后sb1的长度为:-->11
    在次向sb1中添加后sb1的容量为:-->52
    在次向sb1中添加后sb1的长度为:-->51
    the original text of sb2 are:
    I Love java
    使用replace方法将sb2中的java换成C#后内容为:
    I Love C#
    使用insert方法在sb2第七个字符中添加'java and '后sb2的内容为
    I Love java and C#
    使用remove方法将sb2中第0个字符以后的6删除后sb2的内容为:
    java and C#
    Press any key to continue


    正则表达式的用法范例
      在使用正则表达式之前必须将using System.Text.RegularExpressions导出。下面我们就来通过范例来了解一下正则表达式的使用方法。
    范例一
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                            string test="aklsfhkasjlhasdasdfhjkalsfhkljasljkdfhkljasfdjkhasjk";
       string match;
       int count=0;
       while(true){
       Console.WriteLine("原始字符串为-->{0}",test);
       Console.WriteLine("请输入要查找的字符");
       match=Console.ReadLine();
       Regex myregex=new Regex(@match);
       MatchCollection mcl=myregex.Matches(test);
       foreach(Match mymatch in mcl){
        Console.WriteLine("{0}在第{1}个字符被发现!!",mymatch,mymatch.Index);
               count++;
         }
        Console.WriteLine("{0}出现了{1}次",match,count);
        count=0;
       }
      }
     }
    }
    运行结果
    原始字符串为-->aklsfhkasjlhasdasdfhjkalsfhkljasljkdfhkljasfdjkhasjk
    请输入要查找的字符
    a
    a在第0个字符被发现!!
    a在第7个字符被发现!!
    a在第12个字符被发现!!
    a在第15个字符被发现!!
    a在第22个字符被发现!!
    a在第30个字符被发现!!
    a在第41个字符被发现!!
    a在第48个字符被发现!!
    a出现了8次
    原始字符串为-->aklsfhkasjlhasdasdfhjkalsfhkljasljkdfhkljasfdjkhasjk
    请输入要查找的字符

    范例二
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string str1="use java to write. a program";
       Regex r=new Regex(@"(\.)");
                string []result=r.Split(str1);
       foreach(string s in result){
          Console.WriteLine(s);
       }
       result=Regex.Split(str1,@"(\.)");
       foreach(string s in result){
         Console.WriteLine(s);
       }
      }
     }
    }
    运行结果
    use java to write
    .
     a program
    use java to write
    .
     a program
    Press any key to continue
    范例三
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                string test="java is a computer language,c# also is a computer language java is a poupular computer language";
       Console.WriteLine("original text of test are:");
       Console.WriteLine(test);
       string str;
       int count=0;
       while(true){
           Console.WriteLine("请输入你要查询的字符串 例如"+"java");
                    str=Console.ReadLine();
        Regex r=new Regex(str);
        MatchCollection mcl=r.Matches(test);
        foreach(Match mymatch in mcl){
           Console.WriteLine("{0}在第{1}个位置出现",mymatch,mymatch.Index);
         count++;
        }
        Console.WriteLine("{0}出现了{1}次",str,count);
        count=0;
        if(str.Equals("break")) break;
       }

      }
     }
    }
    运行结果
    original text of test are:
    java is a computer language,c# also is a computer language java is a poupular co
    mputer language
    请输入你要查询的字符串 例如java
    computer
    computer在第10个位置出现
    computer在第41个位置出现
    computer在第78个位置出现
    computer出现了3次
    请输入你要查询的字符串 例如java
    break
    break出现了0次
    Press any key to continue

    日期时间的格式化
    范例一
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                DateTime dt=DateTime.Now;
       Console.WriteLine("格式 d:{0:d},格式 D:{1:D}",dt,dt);
       Console.WriteLine("格式 t:{0:t},格式 T:{1:T}",dt,dt);
       Console.WriteLine("格式 f:{0:f},格式 F:{1:T}",dt,dt);
       Console.WriteLine("格式 g:{0:g},格式 G:{1:G}",dt,dt);
       Console.WriteLine("格式 m:{0:m},格式 M:{1:M}",dt,dt);

      }
     }
    }

    运行结果
    格式 d:2007-3-20,格式 D:2007年3月20日
    格式 t:19:13,格式 T:19:13:42
    格式 f:2007年3月20日 19:13,格式 F:19:13:42
    格式 g:2007-3-20 19:13,格式 G:2007-3-20 19:13:42
    格式 m:3月20日,格式 M:3月20日
    Press any key to continue

    toString()方法范例
     范例一
    using System;
    namespace ConsoleApplication1
    {

     class Class1
     {

      static void Main(string[] args)
      {
                int a=20;
       Console.WriteLine("a={0}",a);
       Console.WriteLine("将a转换成string类型后a={0}",a.ToString());

       double b=2.25;
       Console.WriteLine("b={0}",b);
       Console.WriteLine("将b转换成string类型后a={0}",b.ToString());
      }
     }
    }

    运行结果
    a=20
    将a转换成string类型后a=20
    b=2.25
    将b转换成string类型后a=2.25
    Press any key to continue

  • 相关阅读:
    Codeforces Round #595 (Div. 3) A,B,C,D
    计算几何板子题【2019牛客国庆集训派对day7——三角形和矩形】【多边形相交的面积】
    [POJ]POJ1753(dfs)
    [POJ]POJ2965(dfs)
    洛谷 P1772 [ZJOI2006]物流运输 题解
    简单概率与期望
    洛谷 P3802 小魔女帕琪 题解
    用树状数组实现的平衡树
    【模板】扩展中国剩余定理(EXCRT)
    新博客开通通知
  • 原文地址:https://www.cnblogs.com/luluping/p/1446671.html
Copyright © 2020-2023  润新知