代码改变世界

关于StringBuilder

2014-01-18 13:55  昨日书  阅读(464)  评论(0编辑  收藏  举报

写在前面的话

很久没有更新博客了,来上海实习身边的一切波动挺大的,还好我走过来了,博客园:一路有你!

StringBuilder

相信大家对StringBuilder类型一定不陌生,我们Coding经常会用到这个东东,与之对应的还有一个String类型,今天我们就来话一话它们!

我们都知道,String类型代表的是一个不可变的字符串,一旦定义就不可变,我们经常用到的字符串相关操作,看似在动态修改变量的值,实则本质上是重新定义了一个新的字符串变量,同时String也告诉我们它是一个引用类型。(附 判断一个类型是值类型还是引用类型最简单的办法:在VS中声明该类型+?,例如int? Guid?,然后生成,如果生成可以通过则为值类型,否则为引用类型)

回到我们的StringBuilder,我们可以将StringBuilder想象成一个特殊的构造器,其中包含一个字段,该字段引用了一个char[]数组,当我们操作这个数组的时如果越过了其最大长度,StringBuilder会自动分配一个新的更大的数组,然后复制字符,开始使用新的数组,然后销毁前一个数组。

构造StringBuilder对象

1、最大容量

它指定一个字符串中的最大字符数,默认是Int32.MaxValue(约20亿)

2、容量

它指定StringBuilder维护的字符数组长度,默认为16,假如我们知道需要在StringBuilder中最多存放多少字符,那么我们可以合理的使用这个数字。向字符数组中追加字符时,StringBuilder会自动检测是否超出设定容量,如果会则自动倍增容量字段,拷贝字符数组到新的数组,同时销毁旧的数组

3、字符数组

一个char[]数组,负责维护字符串中的字符内容

操作StringBuilder对象的成员

1、MaxCapacity  //只读属性,返回字符串能容纳的最大字符数(最大容量)

2、Capacity    //读写属性,获取字符数组的长度

3、EnsureCapacity    //方法,保证字符数组至少具有指定的长度(容量)

4、Length       //读写属性,获取或设置字符串中的字符数

5、Clear      //方法,清除StringBuilder对象的内容

6、Append      //方法,在字符数组末尾追加单独一个对象

7、Insert      //方法,在字符数组中插入单独一个对象

8、AppendFormat    //方法,在字符数组末尾追加指定的零个或多个对象

9、AppendLine   //方法,在字符数组的末尾追加一个行中止符或者一个带行中止符的字符串

10、Replace     //方法,替换字符或字符串

11、Remove    //方法,从字符数组中删除指定范围的字符

12、Equals    //方法,比较两个StringBuilder的最大容量,相同字符数组容量和相同字符内容,都满足返回true,否则false

13、CopyTo    //方法,将StringBuilder的字符内容的子集复制到一个Char数组中

结语

很多方法我们都用过,对特定知识的一个回顾罢了!

------如果你觉得此文对你有所帮助,别忘了点击下右下角的推荐咯,谢谢!------