首页 > 代码库 > 字符串基础总结

字符串基础总结

字符串的常用方法

1,字符串的语法定义:string strName;strName = value;或者是string name = value ;这两种定义方式是等价的。字符串是引用类型,在定义 string strName的时候在栈空间中,定义了一个strName的空间,该空间存放一个内存地址;而当进行变量复制操作strName = "The C# Programming Language"的时候,系统会在堆内存分配一个内存空间,该内存空间存储"The C# Programming Language"值,并且将该内存空间的首地址赋值给strName,即栈内存空间是存储对应堆内存空间的首地址,而堆内存空间则才是正真存储数据。

2,字符串的声明

 字符串string对应MSIL(CTS)公共类型系统中的String,实际上是一个类,那么以前了解到,类需要使用new<构造方法>()来进行实例化,同样字符串也可以通过此方式进行实例化3一个变量;例如: string strName = new string(new char[]{...});

备注:这里的String和string等价的效果。

字符串的特性:字符串是不可变的,在内存中字符串一旦生成,内存的数据将不会改变,即使是使用str1 = str1 + str2操作,也只是在内存中重新申请内存空间来存储str1 + str2操作后的结果。那需要修改字符串是怎么处理?这里介绍一个方法strName.ToCharArray(),该方法会将字符串编程一个char类型的数组,因此需要用一个char类型的数组接收。

例如:修改字符串里面的内容  char[] ch = strName.ToCharArray(); for(int i =0;i< ch.length;i++){ 进行处理需要修改的数据} strName = new string(ch);//这里将修改后的字符串赋值给strName.

3,字符串使用索引访问

字符串原本就是排列在一起的字符组成的,C#提供了用"下标"(索引)来访问字符串中的字符,例如:

string strName ="andyWqh";在这里内存中将‘a‘分配编号为0,‘n‘分配的编号为1,后面的字符的编号依次递增。因此,如果需要访问‘W‘,则必须通过循环遍历该字符串的每一个字符,找到编号为4,所以可以这么来访问:char ch = strName[4];即可获取‘W‘字符。

备注:字符串有一个Length属性,通过strName.Length可以得到该字符串的总长度。

4,常见的字符串方法:

   4.1 字符串的大小写(正对字符串里每一个字符而言)

         所有字符变成大写:string strName.ToUpper();

         所有字符变成小写:string strName.ToLower();

   4.2 移除字符串的首尾指定字符

       方法原型: string strName.Trim();//移除字符串strName的首位空格

                      string strName.TrimStrat();//移除字符串strName开头的空格

                      string strName.TrimEnd();//移除字符串strName的结尾处的空格

     若果需要指定移除的内容,则可以添加一个char数组作为参数 string strName.Trim(char[] ch);

 4.3  字符串的比较方法

         Compare()方法原型:int string.Compare(string str1,string str2);

         按照字典排序进行比较:当 str1 > str2时返回1;

                                        当 str1 = str2时返回0;

                                        当str1 < str2时返回-1;

         备注:int string.Compare(string str1,string str2,bool ignoreCase)表示是否区分大小写,ignoreCase为true表示不区分大小写,默认值为false;

         Equals()方法原型 bool strName.Equals(string str);比较结果若是相等则返回true,否则返回false。

备注: bool strName.Equals(string str,String.Comparison。OrderinaIgnoreCase)表示不区分大小写,若只是仅仅比较两个字符串是否相等,则使用"=="运算比较简单。

  4.4 字符串的合并和分隔

       合并join方法:将数组strArray中的内容拼接成一个字符串,并在对应的数组每两项之间增加分隔符str; strName.Join(str,strArray)。

方法原型:string strName.Join(string str,string[] strArray);

  字符串分隔Split方法

      方法原型:string[] strName.Split(params char[] separator);将字符串strName以separator中的字符进行分隔,分隔后返回得到的内容存储到数组中;返回的数组中可以有空字符串项,如果想要去掉这些空字符串项,则可以使用string[] strName.Split(char[] separator,StringSplitOptions.RemoveEmptyEntries).

4.5 字符串的查询

     Contains()方法

        方法原型:bool strName.Comtains(string str);表示字符串strName中是否包含str,如果包含则返回true,否则返回false.

        IndexOf()方法

        常用的两种方式:a) int strName.IndexOf(string str)从头开始查询到第一次出现str的下标。b) int strName.IndexOf(string str,int startIndex)从startIndex开始,出现第一次的下标。如果没有找到则直接返回-1. LastIndexOf()睡觉哦从最后一个字符开始进行匹配。

       IndexOpAny()方法

         方法原型: int strName.IndexOfAny(char[] anyOf)寻找字符串中的所有内容,返回第一个字符的位置。同样有一个重载方法 int strName.IndexOfAny(char[] anyOf,int startIndex);

   4.6 求子字符串方法

      string strName.Substring(int stratIndex,int length)从字符串strName的startIndex位置开始提取长度为Length的字符串,如果省略第二个参数则表示一直到最后的字符。

      4.7 字符串的插入,移除和替换操作

           4.7.1 插入操作

               在字符串strName的index位置上插入str,原来的字符依次往后移动,变成一个新的字符串 strName = strName.Insert(index,str);

                方法原型: string strName.Insert(int index,string str);

        4.7.2  移除操作

              在字符串strName中移除从startIndex开始,长度为Length的字符串,剩下的字符串按原有顺序合并为一个新的字符串。  strName= strName.Remove(startIndex,length);

               方法原型: string strName.Remove(stratIndex,int length) ;如果省略第二个参数,将移除startIndex后所有的字符串。

    4.7.3  替换操作

         将字符串strName 中的oldChar替换为newChar strName = strName.Replace(oldChar,newChar);

        方法原型:string strName.Replace(string oldValue,string newValue);

   4.8 判断结束与开始

         判断字符串strName是否已某字符串开始或者结束

           bool strName.StartsWith(string str)判断开始

           bool strName.EndsWith(string str)判断结束 

     

字符串基础总结