zoukankan      html  css  js  c++  java
  • string类和stringBuilder类

           字符串是C#中的一种重要数据类型,在项目开发中,离不开字符串操作。C#提供了string类实现字符串操作。于Convert类相似,string类中方法有静态方法和非静态方法。注意,在C#中String和string可以认为是相同的,为了书写简便,我们统一采用小写string.。

           1. 静态方法

               使用“string.方法名”格式调用。

              (1). 字符串比较            

               格式: String.Compare(str1,str2);

                        比较两个字符串str1和str2大小,若str1大于str2,测返回1;若是小于测返回-1;相等返回0。

              string str1 = "test";
              string str2 = "t":
              Console.WritLine(String.Compare(str1,str2));

                        程序输出结果为: 1;

                        两个字符串比较,字符串中第一个不相同字符的ASCLL码大的字符串较大。

             (2). 字符串复制

                格式: String.Copy(str);

                       创建一个与指定字符串具有相同值的新字符串实例。使用String.Copy(str)是在内存中开辟新的存储空间,并复制字符串str,得到一个新的字符串实例。例如

            string str1 = "test";
            string str1 = string.Copy(str1);
            Console.WriteLine(str2);

                       程序输出结果为: test

                【TIPS】

                  下面的代码也是合法的,执行完毕后str1,str2指向内存中的同一个字符串。

           string str1 ="test";
           string str2 = str1;

               (3). 字符串判等          

             string.Equals(str1,str2);

                      判断两个字符串str1和str2是否相等。相等,则返回True,否则返回false。

                    【TIPS】

                           string.Equals(str1,str2) 与str1 == str2的作用相同。

              (4). 字符串合并

              string.Join(separator,arr),其中separator为字符串,arr为字符串数组

                      将字符串数组arr中的所有字符串合并成一个字符串,相邻字符串之间添加分隔符。例如:        

             string [] a ={"hello","world"};
             Console.WriteLine(string.Join(",",a));

             2. 非静态方法

               使用“对象名.方法名”格式调用。

                 (1). 字符串比较               

                对象名.CompareTo(string str);

                            比较字符串对象与字符串str的大小,返回值规则与String.Compare()相同。 

              string str1 = "test";
              string str2 = "hello":
              Console.WritLine(str1.CompareTo(str2));

                         程序输出结果为 1;

                  (2). 判断是否包含给定字串

                              判断字符串对象中是否包含子字符串str。是则返回True,否则返回false。例如:         

               string str1 = “hello world”:
               string str2 = “hello”;
               Console.WriteLine(str1.CompareTo(str2));

                           程序输出结果为: True;

               (3).查询给定子串位置

               对象名.IndexOf(str)

                         查询字符串对象中给定字符串str首次出现的位置,如果子字符在字符串对象中不存在,则返回-1。 例如

               string str1 = “hello world”:
               string str2 = “world”:
               Console。WriteLine(str1.IndexOf(str2));

                          程序输出结果为:6;

                         也可以指定在字符串对象中查找子串的起始位置:

              Console.writeLine(str1.Indexof(str2,7));/*从字符串数组str1中下标为7的字符开始查找*/

                        则程序输出结果变为:-1;

             (4).查找字符串是否包含给定字符数组中的字符        

              对象名.IndexOfAny(arr ),arr为字符串数组

                 查找字符串对象中是否包含字符数组arr中的任一字符元素。如果有,则返回第一个出现的字符元素的位置。如果未能在字符串数组中的任意一个字符,则返回-1。例如:

               

            string str1 = “hello world”;
            char[] s = {'a','b','c','d'};
            Console.WriteLine(str1.IndexOfAny(s));

                程序输出结果为:10;

             (5)插入字串

           对象名.Insert(startindex,str),startindex为整型值,str为字符串。

              在字符串对象的给定位置(startindex)插入子串str。例如:

          string str1 = “hello world”;
          Console。WriteLine(str1.Insert(1,"text"));

                   程序输出结果为: htestello world;

            (6)删除子串

            对象名.Remove(startindex),startindex为整型值。

                    删除此字符串从指定位置到最后位置的所有字符。

           对象名.Remove(startindex,count),startindex,count为整型值。

                   删除此字符串从指定位置开始的count个字符。

                 例如:

          string str1 = “hello world”;
          Console.WriteLine(str1.Remove(6));
          Console.WriteLine(str1.Remove(0,6));

              程序输出结果为:

           hello
           world

             (7)替换字串

           对象名.Replace(substr1,substr2),substr1,substr2为字符串。

                  将字符串中的所有子串substr1替换为substr2。

                 例如:

            string str1 = "hello World";
            Console.WriteLine(str1.Replace("world","China"));
            string str2 =“Like”:
            Console.WriteLine(str.Replace('L','N'));

                  程序输出结果为:

              hello china
              Nike

            (8).拆分字符串

            对象名.Split(chararr),chararr为字符数组

                 将字符串拆分成若干子字符串,存入一个字符串数组,以字符数组chararr中的字符作为分隔符,遇到分隔符,则产生一个新的字符串。

           (9)去空格

             对象名.Trim();           //去掉字符串首尾的空格,字符串中间的空格不受影响。
             对象名.TrimEnd();        //去掉字符串尾部的空格 
             对象名.TrimStart();      //去掉字符串首部的空格。

     

       stringBuilder类

       string类在进行字符串运算(如赋值,字符串连接等)时会产生一个新的字符串实例,需要为新的字符串实例分配内存空间,相关的系统开销会非常昂贵。如果要修复字符串而不创建新的对象,且操作次数非常多,则可以使用StringBuilder类。例如,在一个顺序中将许多字符串连接在一起时,可以使用StringBuilder类。StringBuilder类在原有字符串的内存空间上进行操作,使用Stringbuilder类可以提升性能。

                  

        

             

                 

                      

                        

  • 相关阅读:
    Oracle常见授权与回收权限——grant和revoke
    数据库之笛卡尔积
    hdu 2032 一维数组实现杨辉三角
    poj3071之概率DP
    冒泡排序及两种优化方式
    Non-ASCII character 'xe8' in file xxx.py on line 8, but no encoding declared
    编写shell脚本获取本机的网络地址。  比方:本机的ip地址是:192.168.100.2/255.255.255.0,那么它的网络地址是 192.168.100.1/255.255.255.
    移动站点性能优化
    Math类概述及其成员方法
    java中StringBuilder、StringBuffer、String类之间的关系
  • 原文地址:https://www.cnblogs.com/ljknlb/p/7898725.html
Copyright © 2011-2022 走看看