字符串特性:可以看成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)
关于字符串的方法太多,记不住,这样比较好联想!