字符串(C#总结)

字符串特性:可以看成char的只读数组;C#中字符串不可变

不可变:是指声明初始化字符串时在内存中开辟一段空间来存放字符串的值,这个值不会再改变

如果想要改变字符串中部分值?

1.先将string转变为可读可写数组

2.通过修改转变后的数组,间接修改了string

3.把修改完的char数组在转变为string

string text = "哈哈哈,我又回来了";      //定义一个字符串string并初始化
char[] chs = text.ToCharArray();        //把字符串text转换为字符数组
chs[5] = '很';                          //改变下标为5的字符数组元素的值
string str = new string(chs);         //new开辟了一个新的空间,将字符数组转变成新的字符串,并赋值给新的字符串变量
Console.WriteLine(str);                //输出字符串
Console.ReadKey();
string text = "哈哈哈,我又回来了";      
char[] chs = text.ToCharArray();
chs[5] = '很';
text = new string(chs);    //将转变的字符串存放到开辟新的空间,但让text变量指向它
Console.WriteLine(text);    
Console.ReadKey();

改值后,new新开辟空间存放结果,程序结束后将原来字符串空间释放

用同一个变量接收新值,会改变指针指向的位置

字符串本身的内容是不可变的,变的是变量所指向的地址空间不同

字符串string的方法(工具)

string str=null ; 初始化时不分配空间 

string str="" ;    初始化时分配空间

字符串变成char数组 str.TocharArray()

可以把字符数组变成字符串 new string(str)

转换为字符串:num.Tostring();

字符串长度:str.Length

字符串转换大写:str.ToLower()

字符串转换小写:str.ToUpper()

字符串忽略大小写:str1.Equals(str2,StringComparison.OrdinalIgnoreCase);

--------------------------------------------------------------------------------------------------------------------------

在字符串中插入字符:str.Insert(5, "又"); //在索引为5的地方插入字符又

按照特殊字符切割字符串并将结果存到字符串数组中:string[] sts = str.Split('@');

替换部分字符串:str.Replace("敏感词","**")

判断字符串中是否包含另一个字符串:string.Contains("字符串");

判断以某个字符开始:str.StartsWith("小小");//完全匹配

判断以某个字符结束:str.EndsWith("小”);//完全匹配

-------------------------------------------------------------------------------------------------------------------------

找字符的索引:str.IndexOf("小");//这个字所在的索引

                       str.IndexOf("小杨");//索引都是0

最后一个字符串的索引:str.LastIndexOf("啊");

从某下标开始截取字符串:string.Substring(2);//在的话,返回索引,不在的话,返回-1

                                         string.Substring(2.10); //从下标2开始,截取10个字符元素

移除部分字符串:str.Remove(3);//从索引3的地方开始移除,后面都不要

                           str.Remove(3,2);//从索引3的地方开始移除,移除字符数组元素2个

------------------------------------------------------------------------------------------------------------------------------

在字符数组中加连接符并字符串输出:string st=string.Join("|", names);

判断是否存在空格:string.IsNullOrEmpty(str)

切前后空格 str.Trim()

联想场景:

一个名叫字符串的人生病来看挂号,由于智能机器挂号,不区分名字的大小写(ToLower,ToUpper,Equals),很快挂好了号。

医生从头到脚(StartsWith,EndsWith)检查,发现它身体里有(Contains)一个肿瘤,需要切除(Split),替换(Replace)新的人造器官,并且输液(Insert);

手术后,来复查,发现从头找(IndexOf),从尾找(LastIndexOf),都找不到上次那个医生房间,于是它想到好像有写着“内科”字样(Substring),找到后,拍照防止下次又找不见(Remove)

关于字符串的方法太多,记不住,这样比较好联想!

猜你喜欢

转载自blog.csdn.net/zhaofen_7/article/details/81056269