C#菜鸟之漫漫长路~~~char,string,StringBuilder



 

1.char类

 

  
           char a = 'a';     Console.WriteLine("IsLetter方法判断a是否为字母:{0}", Char.IsLetter(a));

            char b = '8';     Console.WriteLine("IsDigit方法判断b是否为数字:{0}", Char.IsDigit(b));

                 结果是True。 

   string Str1 = "深藏功与名!"; //声明一个字符串变量Str1

          char Str2 = Str1[1];     //获取字符串Str1的第二个字符

         char Str3 = Str1[2];     //获取字符串Str1的第三个字符


                查找的方法。 

 


2.字符串类String的使用


                                                      比较字符串

在C#中最常见的比较字符串的方法有Compare、CompareTo和Equals方法等,这些方法都归属于String类。

(1)Compare方法

       Int compare(string strA,string strB)     

       Int Compare(string strA,string strB,bool ignorCase)    ——— bool ignorCase的值是表示是否忽略大小写

(2)CompareTo方法

       public int CompareTo (string strB)         

(3)Equals方法

       public bool Equals (string value)

       public static bool Equals (string a,string b)

 (字符串大小不是由长短决定的,是前面字母的顺序决定。A比a大;B比A大,类推)
  string Str1 = "a";                    //声明一个字符串Str1
            string Str2 = "A";                    //声明一个字符串Str2

            Console.WriteLine(String.Compare(Str1, Str2));
            Console.WriteLine(String.Compare(Str1, Str1));        //输出字符串Str1与Str1比较后的返回值
            Console.WriteLine(String.Compare(Str2, Str1));        //输出字符串Str2与Str1比较后的返回值

            Console.WriteLine(Str1.CompareTo(Str2));

            Console.WriteLine(Str1.Equals(Str2));                       //用Equals方法比较字符串Str1和Str2
            Console.WriteLine(String.Equals(Str1, Str2));		//用Equals方法比较字符串Str1和Str2
            Console.ReadLine();

compare和compareTo区别貌似不大
equals的效率高些,compareTo其实就是按照编码的数值做差,它能确定两个String在字典顺序上的前后性,
如果你只是想知道是否相同时,用equals也行,效果一样。

另外,equals是Object的方法,要求涉及到比较操作的继承类要自己重写该方法,所以String重写了equals,而compareTo为String的方法。所以:
value1.compareTo(value2),当value1不为String类型时,会报错。
value1.equals(value2),都会进行比较。 (摘抄,嗯。)

 

                                                         格式化字符串

在C#中,String类提供了一个静态的Format方法,用于将字符串数据格式化成指定的格式,其语法格式如下。

      Public static string Format(string format, object obj);

  其中:format用来指定字符串所要格式化的形式;obj是只要被格式化的对象。

            int StrA = 1;
            int StrB = 2;
            string newstr = String.Format("{0},{1}!!!", StrA, StrB);                    //格式化字符串
            Console.WriteLine(newstr);

                               显然结果是 : 1,2!!!


                                                           截取字符串

String类提供了一个Substring方法,该方法可以截取字符串中指定位置和指定长度的字符,其语法格式如下。

      public string Substring (intstartIndex,int length)

      其中:startIndex表示子字符串的起始位置的索引;length表示子字符串中的字符数


     string StrA = "此情可待成追忆";                                //声明字符串StrA
            string StrB;                                        //声明字符串StrB
            StrB = StrA.Substring(1, 4);                                //截取字符串
            Console.WriteLine(StrB);                                //输出截取后的字符串

                                             显然结果是 : 情可待成


 

 

                                                             分割字符串

String类提供了一个Split方法,用于分割字符串,此方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串,其语法格式如下。

      public string [ ] split ( params char [ ] separator);

      其中:separator是一个数组,包含分隔符。

            string StrA = "用^一生#下载,你";                                     //声明字符串StrA
            char[] separator = { '^', '#', ',' };                              //声明分割字符的数组
            String[] splitstrings = new String[100];                           //声明一个字符串数组
            splitstrings = StrA.Split(separator);                              //分割字符串
            for (int i = 0; i < splitstrings.Length; i++)
            {
                Console.WriteLine("item{0}:{1}", i, splitstrings[i]);
            }
            Console.ReadLine();


                                                             插入和填充字符串

(1)插入字符串

      public string Insert (intstartIndex, string value);

   其中:startIndex用于指定所要插入的位置,索引从0开始;value指定所要插入的字符串。

 

            string str1 = "我你";                       
            string str2;                              
            str2 = str1.Insert(1, "喜欢");                    //使用Insert方法向字符串str1中插入字符串
            Console.WriteLine(str2);                        //输出字符串变量str3
            Console.ReadLine();

                    显然结果是 :我喜欢你

 

(2)填充字符串

      public string PadLeft(inttotalWidth,charpaddingChar);

   其中:totalWidth指定填充后的字符长度;paddingChar指定所要填充的字符,如果省略,则填充空格符号。

            string str1 = "*_*";                        //声明一个字符串变量str1
           
            string str2 = str1.PadLeft(4, '(');//声明一个字符串变量str2,并使用PadLeft方法在str1的左侧填充字符“(”
            string str3 = str2.PadRight(5, ')');//声明一个字符串变量str3,并使用PadRight方法在str2右侧填充字符“)”

            Console.WriteLine("补充字符串之前:" + str1);        //输出字符串str1
            Console.WriteLine("补充字符串之后:" + str3);        //输出字符串str2
            Console.ReadLine();

 


                                        删除字符串

Remove方法用于从一个字符串的指定位置开始,删除指定数量的字符,其语法格式如下。

      Public String Remove ( intstartIndex);

      Public String Remove ( intstartIndex, int count);

      其中:startIndex用于指定开始删除的位置,索引从0开始;count指定删除的字符数量。

            string str1 = "心有灵犀一点通";                        //声明一个字符串变量str1,并初始化
          
            string str2 = str1.Remove(1,3);//声明一个字符串变量str2,并使用Remove方法从字符串str1的索引1处开始删除三个字符

            Console.WriteLine(str2);                        //输出字符串str2
            Console.ReadLine();


 


                                        复制字符串

 

1.Copy方法

     创建一个与指定的字符串具有相同值的字符串的新实例,其语法格式如下。

     public static string Copy (string str);

    其中:str是指要复制的字符串;返回值是与str具有相同值的字符串。


            string stra = "我爱你";                                //声明一个字符串变量stra并初始化
            string strb;                                            //声明一个字符串变量strb
            //使用String类的Copy方法,复制字符串stra并赋值给strb
            strb = String.Copy(stra);
            Console.WriteLine(strb);                                //输出字符串strb
            Console.ReadLine();

2.CopyTo方法

 

     CopyTo方法可以将字符串的某一部分复制到另一个数组中,其语法格式如下。

 

     Public void CopyTo(intsourceIndex,char[ ]destination,intdestinationIndex,int count);


            string str1 = "若不离不弃";                    //声明一个字符串变量str1并初始化
            char[] str = new char[100];                        //声明一个字符数组str
            //将字符串str从索引1开始的4个字符串复制到字符数组str中
            str1.CopyTo(1, str,1, 4);   //1表示前面空1个位置
            Console.WriteLine(str);                        //输出字符数组中的内容
            Console.ReadLine();


                                     替换字符串

 

      String类提供了一个Replace方法,用于将字符串中的某个字符或字符串替换成其他的字符或字符串,其语法格式如下。

      public string Replace(char OChar,charNChar)

      public string Replace(string OValue,stringNValue)

            string a = "one world,one dream";                //声明一个字符串变量a并初始化
            //使用Replace方法将字符串a中的“,”替换为“*”,并赋值给字符串变量b
            string b = a.Replace(',', '*');
            Console.WriteLine(b);        


 



3.可变字符串类StringBuilder的使用

 


 

 StringBuilder 类类似于string类型,但是功能更强。虽然String类功能很强,但是它也是不可改变的。这就是说一旦创建String对象,就不能够修改。表面看来能够修改字符串的所有方法实际上不能够修改。它们实际上返回一个根据所调用的方法修改的新的String。当需要大量的修改时,可使用StringBuilder类。

StringBuilder类存在于System.Text命名空间中,如果要创建StringBuilder对象,首先必须引用此命名空间

方    法

说    明

Remove

从当前StringBuilder对象中移除指定数量的字符

Replace

用另一个指定的字符来替换StringBuilder对象内的字符

Append

将文本或字符串追加到指定对象的末尾

AppendFormat

自定义变量的格式并将这些值追加到StringBuilder对象的末尾

Insert

将字符串或对象添加到当前StringBuilder对象中的指定位置

例如:创建一个StringBuilder对象,其初始引用的字符串为“Hello World!”,代码如下。

StringBuilderMyStringBuilder = new StringBuilder("Hello World!")

int Num = 1000;                            //声明一个int类型变量Num并初始化为1000
            //实例化一个StringBuilder类,并初始化为“用一生下载你”
            StringBuilder LS = new StringBuilder("用一生下载你", 100);
            LS.Append("VS芸烨湘枫");                    //使用Append方法将字符串追加到LS的末尾
            Console.WriteLine(LS);                        //输出LS
            //使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾
            LS.AppendFormat("{0:C}", Num);
            Console.WriteLine(LS);                        //输出LS
            LS.Insert(0, "名称:");                        //使用Insert方法将“名称:”追加到LS的开头
            Console.WriteLine(LS);                        //输出LS
            //使用Remove方法从LS中删除索引15以后的字符串
            LS.Remove(15, LS.Length - 15);
            Console.WriteLine(LS);                        //输出LS
            //使用Replace方法将“名称:”替换成“一生所爱”
            LS.Replace("名称", "一生所爱");

            Console.WriteLine(LS);                        //输出LS
            Console.ReadLine();


结果如图:


 

 

StringBuilder类与String类的区别


 


 

String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值