C# string
一、string 属引用类型,赋值方法如下:
string a="aaaa";
二 、String.Intern:检索系统对指定 String 的引用。如果 str 的值已经留用,则返回系统的引用;否则返回对带有 str 值的字符串的新引用。
三、String.IsInterned:检索对指定 String 的引用。如果 str 位于公共语言运行库“拘留池”中,则为对它的 String 引用;否则为 nullNothingnullptrnull 引用。
四、字符串中的"+"操作符:通常我们会对字符串进行修改,例如"+"号,表示连接多个字符串。但加号会产生非常多的字符串,这样会造成非常多的内存开销和系统开销,这里可以利用StringBuilder来解决多字符串连接的性能问题。举例如下:
string b = "aaa";
b = b + "a";
StringBuilder strb = new StringBuilder();
strb.Append("aaa");
strb.Append("a");
五、安全字符串:如果字符串中存放了此比较敏感的信息,例如用户的密码,信用卡信息之类的,如果此时有非安全代码或者是非托管代码访问这些字符串,这些代码可以扫描进程的地址空间,访问包含敏感数据的字符串,以一种非授权的方式来使用这些数据。即使只使用这些字符串时间很短,马上回进行垃圾回收,也是需要一定时间的,而且string本身无法修改的特性,使这些非安全的或者是非托管代码在访问时会留string的副本在内存中。
FCL解决了这个问题,它就是System.Security.SecureString:表示应保密的文本。文本在使用时出于保密目的被加密,并在不再需要时从计算机内存中删除。无法继承此类。当你构造一个SecureString对象时,系统会在内存中分配一个非托管区域,里面包含一个字符数组,里面的内容均是经常加密的。之所以是非托管空间,就是为了不让垃圾回收器来管理。
System.Security.SecureString实现了IDisposable接口,这样可以保证在使用完后立即对字符串进行销毁。
六、String.IndexOf:指告指定字符在实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。
String.IndexOf(value, startIndex, count)
value:要查找的 Unicode 字符。
startIndex:搜索起始位置。
count:要检查的字符位置数。
返回值(Int32):
如果找到该字符,则为 value 的索引位置;否则如果未找到,则为 -1。
示例:
string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文";
Label1.Text = str.IndexOf("中国").ToString();//返回 -1
Label1.Text = str.IndexOf("盈基").ToString();//返回 3
Label1.Text = str.IndexOf("盈基",10).ToString();//返回21 说明:这是从第10个字符开始查起。
Label1.Text = str.IndexOf("邓",15,10).ToString();//返回 -1
Label1.Text = str.IndexOf("邓",15,20).ToString();//返回 -32 说明:从第15个字符开始查找,要查找的范围是从第15个字符开始后20个字符,即从第15-35个字符中查找。
七、String.LastIndexOf:报告指定的 Unicode 字符或 String 在此实例中的最后一个匹配项的索引位置。
八、String.Substrinb:字符串截取,返回值是一个截取后的字符串。
String.Substring(Int32):从此实例检索子字符串,子字符串从指定的字符位置开始。
String.Substring(Int32,Int32):从此实例检索子字符串,子字符串从指定的字符位置开始且具有指定的长度。
九、其他方法
Compare() 比较字符串的内容,考虑文化背景(区域),确定某些字符是否相等;
CompareOrdinal() 与Compare一样,但不考虑文化背景
Concat() 把多个字符实例合并为一个实例
CopyTo() 把特定数量的字符从选定的下标复制到数组的一个全新实例中
Format() 格式化包含各种值的字符串和如何格式化每个值的说明符
IndexOfAny() 定位字符串中第一次出现某个字符或一组字符的位置
Insert() 把一个字符串实例插入到另一个字符串实例的指定索引处
Join() 合并字符串数组,建立一个新字符串
LastIndexOfAny() 定位最后一次出现的位置
PadLeft() 在字符串的开头,通过添加指定的重复字符填充字符串
PadRight() 在字符串的结尾,通过添加指定的重复字符填充字符串
Relace() 用另一个字符或子字符串替换字符串中给定的一个子字符串或组
Split() 在出现给定字符的地方,把字符串拆分为一个子字符串数组
Substring() 在字符串中获取给定位置的子字符串
ToLower() 把字符串转换为小写形式
ToUpper() 转换成大写
Trim() 删除首尾的空白