String和StringBuilder类
在.Net中,字符串可以分为两种类型,不变字符串String类和可变字符串StringBuilder类。不变字符串一旦被创建就是不能修改的;可变字符串是可以动态修改的。
String类
String类是不可变的,一旦创建可一个字符串就不可以修改。虽然有些方法看起来似乎改变了String对象,但实际上他所返回的是一个包含修改后内容的新的String对象,例如:
上面的代码看起来好想修改了s1,但实际上在执行完s1的第二次赋值后,系统为他分配了一块新的内存,而之前的String则被系统的垃圾回收机制回收,如图所示
不变字符串的处理
插入字符串:插入字符串使用Insert方法,他的原型是public string Insert(int startIndex,string value)。我们看到s1没有改变,因为它是不可变的,但是s2使用Insert方法成功了。
移除字符串:移除字符串使用Remove方法,它的原型是
public string Remove(int startIndex) 从startIndex位置开始移除所有字符
public string Remove(int startIndex,int count) 从startIndex位置开始移除数量为count的字符
替换字符串:替换字符串使用Replace方法实现,原型是
public string Replcae(char oldChar,char newChar) 将旧的字符换成新的字符
public string Replcae(string oldString,string newString) 将旧的字符串换成新的字符串
填充字符串:PadLeft和PadRight
public string PadLeft(int totalWidth) 在字符串的左边填充totalWidth个空白字符,新String的长度为totalWidth
public string PadLeft(int totalWidth,char PadingChar) 在字符串的左边填充totalWidth个字符PadingChar
查找字符串:IndexOf
获取子字符串:SubString
格式化字符串:Format,使用格式化字符串的方法是String.Format
可变字符串处理
StringBuilder类可以动态改变字符串。在使用可变字符串时首先要实例化StringBuilder类
插入字符串:Insert
追加字符串:Append
移除字符串:Remove
替换字符串:Replace
复制字符串:CopyTo