1.不可变性 由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本)。之所以发生改变只是因为指向了一块新的地址。 ps:vs2005 即时窗口 &变量,取地址。。 vs2010以上 即使窗口 *变量 ,只取堆地址。 2.字符串池(只针对字符串常量) 当一个程序中有多个相同的字符串常量时,多个变量指向的是内存中同一块字符串!这个特性叫字符串池。之所以字符串,不会造成程序混乱,是因为字符串的不可变性。
PS:这里重载方式很多,不一一列举。
1.Contains(String str) 判断字符串中是否包含,指定字符串。
用法
string str ="helloworld";
str.Contains("hello"); //true
2.StartsWith(String str)
判断字符串对象是否以,指定字符串开头。
3.EndWith(String str)
判断字符串对象是否以,指定字符串结尾。
4.Length 属性
获取字符串的长度
5.IndexOf(String str)
获取指定字符/字符串.....在对象字符串中第一次出现的位置。
6.LastIndexOf(String str)
获取指定字符/字符串....在对象字符串中最后一次 出现的位置。
7.SubString(int start)
SubString(int strat, int length) 从指定位置,截取字符串。
8.ToLower()
将串转换成小写,返回一个新的全小写的字符串。
9.ToUpper()
将串转换成大写,返回一个新的全大写的字符串。
10. Replace(string oldStr,string newStr)
用新的字符串,替换对象字符串中老的字符串部分。
11.Trim() 去掉对象字符串两端的空格
TrimStart() 去掉对象字符串 开头的空格
TrimEnd() 去掉对象字符串 结尾的空格
PS:如果想去掉其他的开头结尾的其他字符其他的字符,可以采用Trim()的其他重载。
12.Split() 把对象字符串,按照指定字符分割成一个字符串数组!
Split() 的重载同样很多,
例如 Split(new char[]{'|'}, StringSplitOption.RemoveEmptyEntries)// 删除空数据
1.IsNullOrEmpty(string)
//string.IsNullOrEmpty(str1) 判断某字符串是否为null,或者为空字符串。
2.Equals(string,string,StringComparison.OrdianlIgnore) 忽略大小写比较两个字符串是否相同。 3.Join(string,string[]) 把一个数组按照指定字符串,拼接成一个字符串。