C# 字符串操作

 

复习索引:    字符串的两个特性 (不可变性)   

 

不产生新串的查询操作:

IsNullOrEmptyContainsIndexOfStartsWith  EndsWithCompareCompareTo  Equals(既是静态方法,也是实例方法))

 

会产生新的字符串的方法:

     Format(静态方法)    copy(静态方法)   Trim   CopyTo

     join   Insert   split   Substring   Remove   Replace   PadLeft  PadRight  

 

StringBuilde

 

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

$$字符串的两个特性:

 

特性一:不可变性

字符串是引用类型变量,对其赋值只是改变了变量名指向的字符串对象,要改变它就得将其转换城

这个对象,就得将其转换成一个字符数组,然后进行编辑

例:

 

 char[] ch = str.ToCharArray();

     对数组进行修改

 str = new string(ch);

 

 

特性二:字符串池

常量字符串被存到字符串池中,可以被重复利用

 

 

 

 

 

$$不产生新串的方法

 

IsNullOrEmpty

 

bool result= str.Contains(string str);     //查找字符串的子串是否存在

 

IndexOf方法 常用的两种形式:       注:如果不能找到字符串,会返回-1

 int n = str.IndexOf(string str);               // 从头开始,出现第一次的下标

 int n = str.IndexOf(string str,int startIndex); // startIndex开始,出现第一次的下标

 

bool result = str.StartsWith(string str);          判断字符串str是否以某字符串开始

bool result = str.EndsWith(string str);            判断字符串str是否以某字符串结束

 

 

...............................................

 

字符串的比较:

 

compareCompareTo方法:比较两个字符串在字典里面的顺序,前面的小于后面的,可能返回10-1 

                      

bool result = string.Compare(str2,str1)   

bool result = str1.CompareTo(str2)       //CompareTo    :比较两个字符串在字典里面的顺序

       ......................................................

                                 

bool result = string.Equals(str1,str2)       //equals 既是 静态方法 也是 实例方法  

bool result = str1.Equals(str2)

bool result = str1= =str2                     // == equals 的效果是一致的

       ......................................................       

 

bool result = str1.ToLower() == str2.ToLower();      //忽略大小写的比较

 

 

 

$$产生新串的方法:

 

String.Format()  让数据按照自己指定的格式输出

string stra = "学会c#24堂课";      string strb = "经典图书";     string strc = "c#入门经典";

string newstr = string.Format("{0}+{1}+{2}***",stra,strb,strc);             //string.Format()  方法得到一个 string 类型值

 

                                    

str = str.ToUpper();        将字符串中的字符都转换成大写

str = str.ToLower();                     转换成小写

 

 

str.Trim()        // 移除首尾的空格,当括号里面不传参数的时候,默认去空格字符

str.TrimStart();  / str.TrimEnd();      // 移除开头的字符    移除结尾的字符

string str.Trim(char[] ch);          //移除首尾的指定字符,可添加一个char数组作为参数

 

 

Copy

string str3 = string.Copy(str);          //copy    str复制后赋值给str3

 

 

CopyTo:

string dest = "Hello world";

string source = "Goodbye China";

char[] destArray = dest.ToCharArray();      //dest变成字符数组

source.CopyTo(8, destArray, 6, 5);          //source的第8个字符起复制5个字符并从destArray的第6个位置开始放

dest = new string(destArray);              //这时dest"Hello China"

 

 

 

 

字符串的合并与分割

 join 合并:

  str=str.jion(str,strArr);         //将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str

..............................................................

 

Insert 插入

string str3 = stra.Insert(index, str);              //从索引为 index 的位置插入字符串 str

 

 

....................................................

split 分割:

string[] atrArray= str.Split(params char[] separator); 

//将字符串strseparator数组中的字符分割,分割后得到的内容存到一个数组中

   

string[] words = str.Split(new char[]{' ',',','?'},StringSplitOptions.RemoveEmptyEntries);  

//加上参数   StringSplitOptions.RemoveEmptyEntries,可以去掉空格

 .................................................................

 

Substring 截取

string stra = "学通c#24堂课";

string strb = stra.Substring(0,4);   //第一个参数表示开始位置,第二个表示子串长度

string strc = stra.Substring(4);     //当只有一个参数时,表示从当期位置开始,一直到结束

 

 

 

Remove 删除字符

string str1 = str.Remove(4);    //当只有一个参数时,意思为:删除之后的所有字符

string str2 = str.Remove(2,3);   //当有两个参数时,第一个参数表示开始位置,第二个表示删除子串长度

 

 

 

Replace 替换字符串

string str6 = str4.Replace("胡章诚","key");

 

 

 

PadLeft  PadRight 填充

 

string stra = "12345";

string str4 = stra.PadLeft(6, '(');

string str5 = str4.PadRight(7, ')');

左填充从右开始计数,右填充从左开始计数,如果该位置本身有字符,则不填充,无字符就填充

 

 

你可能感兴趣的:(字符串)