字符串
string是System.String的一个别名。
需要注意的是,string创建的字符串实际上是一个不可变的数据类型。一旦对字符串对象进行了初始化,该字符串就不能再改变内容了。
对于:
string s = "www";
s = s + ".baidu.com";
实际上是创建了一个新的字符串,把就字符串的内容复制到了新的字符串中,然后将新字符串的引用赋值给了该字符串对象。
原先的旧字符串因为没有引用,会被GC回收。
常用方法
- CompareTo() :比较两个字符串的内容是否相等。
- Replace():用另一个字符或者字符串替换字符串中给定的字符或字符串。
- Split():在出现给定字符的地方,把字符串拆分成一个字符串数组。
- SubString():在字符串中检索给定位置的子字符串。
- ToLower():把字符串转换成小写形式。
- ToUpper():把字符串转换成大写形式。
- Trim():删除首尾的空白。
- Concat():合并字符串。
- CopyTo():把字符串中指定的字符复制到一个。
- Format():格式化字符串。
- IndexOf():获得字符串第一次出现某个给定字符串或者字符的位置。
- IndexOfAny():返回定义的数组中任何一个字符最早出现的下标位置。
- Insert():把一个字符串实例插入到另一个字符串实例的指定索引处。
- Join():合并字符串数组,创建一个新字符串。
具体使用方法和参数略。
StringBuilder
首先,StringBuilder所在的命名空间为:System.Text。
- 初始化的方式:
//利用构造函数创建StringBuilder
StringBuilder sb = new StringBuilder("www.baidu.com");
//初始一个空的StringBuilder对象,占有20个字符大小的空间
StringBuilder sb = new StringBuilder(20);
//初始化字符串并占有100个字符大小的空间
StringBuilder sb = new StringBuilder("www.baidu.com", 100);
- 添加新的字符串:(Append()方法)
StringBuilder sb = new StringBuilder("www.baidu.com", 100);
sb.Append("/xxx.html");
//利用string实现
string s = "www.baidu.com";
s = s + "/xxx.html";
虽然二者的结果一样,但是当我们需要对一个字符串进行频繁的删除和添加操作时,使用StringBuilder的效率会更高。
对于StringBuilder,当容量不够时,会重新申请一个容量为原来的二倍的空间,然后将原来的内容复制过来并添加新的内容,原先旧的空间将会释放。在定义StringBuilder时,不进行容量的定义也是可以的。
StringBuilder的其他方法
- Insert()
追加特定格式的字符串。
StringBuilder sb = new StringBuilder("www.baidu.com");
sb.Insert(0, "http://"); //0表示插入的索引(位置)
输出为:
http://www.baidu.com
- Remove()
从当前字符串中删除字符。
StringBuilder sb = new StringBuilder("www.baidu.com");
sb.Remove(0,3); //第一个参数为移除的初始索引,第二个参数为移除的字符的长度
输出为:
baidu.com
- Replace()
在当前字符串中,用某个字符串或者字符全部替换为另一个字符串或者字符。
StringBuilder sb = new StringBuilder("www.baidu.com");
sb.Replace(".",""); //字符串替换字符串
输出为:
wwwbaiducom
StringBuilder sb = new StringBuilder("www.baidu.com");
sb.Replace('w','e'); //字符替换字符
输出为:
eee.baidu.com
- ToString()
将当前StringBuilder中存储的字符串,提取成一个不可变的字符串。