关于StringBuilder
来源:互联网 发布:南京海关数据分中心 编辑:程序博客网 时间:2024/06/14 04:12
很久没有更新博客了,来上海实习身边的一切波动挺大的,还好我走过来了,博客园:一路有你!
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数组中
结语
很多方法我们都用过,对特定知识的一个回顾罢了!
------如果你觉得此文对你有所帮助,别忘了点击下右下角的推荐咯,谢谢!------
- 关于 StringBuilder
- 关于StringBuilder
- 关于string/stringbuffer/stringbuilder
- 关于 StringBuilder 用法举例
- 关于String、StringBuffer、StringBuilder
- 关于String,StringBuffer,StringBuilder
- 关于String Stringbuffer StringBuilder
- 关于string stringbuilder stringbuffer
- 关于string,stringBuilder,stringBuffer
- 关于String与StringBuilder、StringBuffer
- 关于StringBuilder的一些事
- 关于String,StringBuilder的总结
- 关于String,StringBuffer与StringBuilder
- 关于Java StringBuilder操作小记
- 关于String StringBuilder StringBuffer 类
- 关于StringBuilder和String的效率问题
- 关于StringBuilder的抄作与神话
- 关于String,StringBuffer,StringBuilder,+和append
- 浅谈Java不同于C++的数组
- 正则表达式(上篇)
- 实现天气预报功能
- 弱弱的玩下Javascript
- 周末了 找个网页特效练练手
- 关于StringBuilder
- 解决asp.net mvc中*.resx资源文件访问报错
- 关于prototype以及继承方面的理解
- 前端学习笔记汇总(之merge方法)
- 使用NodeJs,实现数据抓取
- 迭代器的基本使用
- Guibs 的 Python 学习_变量
- Maven Compilation Error:No compiler is provided...you are running on a JRE rather than a JDK
- EventBus粘性事件