关于StringBuilder
写在前面的话
很久没有更新博客了,来上海实习身边的一切波动挺大的,还好我走过来了,博客园:一路有你!
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的更多相关文章
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- 计算机程序的思维逻辑 (30) - 剖析StringBuilder
上节介绍了String,提到如果字符串修改操作比较频繁,应该采用StringBuilder和StringBuffer类,这两个类的方法基本是完全一样的,它们的实现代码也几乎一样,唯一的不同就在于,St ...
- StringBuilder的使用
今天用到了StringBuilder来拼接查询语句,发现这个真好用,决定做个小结. 百度一个StringBuilder的定义:String 对象是不可改变的.每次使用 System.String 类中 ...
- Java--String 和StringBuilder、StringBuffer 的区别?
1.String是只读字符串,引用的字符串内容是无法改变的. 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改. 3.StringBuilder没有被synchro ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String、StringBuffer与StringBuilder之间区别
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > String ...
- String StringBuffer StringBuilder
package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...
- StringBuffer与StringBuilder的简单理解
联系:两者都适用于字符串的操作,都可以随便对字符串的内容进行变更操作,都继承至AbstractStringBuilder. 区别:StringBuffer是线程安全的,方法都加了synchronize ...
- 关于StringBuffer和StringBuilder
StringBuffer 字符串特点:字符串是常量:它们的值在创建之后不能更改. 字符串的内容一旦发生了变化,那么马上会创建一个新 的对象. 注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创 ...
- string,stringbuilder,stringbuffer用法
总结:1.如果要操作少量的数据用 = String ==================================>字符串常量2.单线程操作字符串缓冲区 下操作大量数据 = Strin ...
随机推荐
- JSP_EL使用
JSP中EL表达式的简单介绍和使用 参考资料: http://www.java3z.com/cwbwebhome/article/article8/8124.html?id=2453 http ...
- 【风马一族_Android】Android 前端内容1
Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...
- WP开发笔记——日期时间DateTime.Now函数
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...
- sql中更新数据库用到declare @a in
declare @a in update TB_Class set @a=1,name='李小龙' where ID=1 这样就可以像更新哪个就更新哪个了 例如ibatisnet中需要更新的时候: & ...
- CSS content内容生成技术以及应用
content属性早在CSS2.1的时候就被引入了,可以使用:before以及:after伪元素生成内容.此特性目前已被大部分的浏览器支持:(Firefox 1.5+, Safari 3.5+, IE ...
- Messages.pas里的消息
一.Windows 消息大全 这张表拷贝自万一兄的帖子:http://www.cnblogs.com/del/archive/2008/02/25/1079970.html 但是我希望自己能把这些消息 ...
- @RenderSection与@RenderBody
_LayoutMain: <html> <head> @RenderSection("head") </head> <body> @ ...
- 打包python脚本为exe可执行文件-pyinstaller和cx_freeze示例
本文介绍使用cx_freeze和pyinstaller打包python脚本为exe文件 cx_freeze的使用实例 需要使用到的文件wxapp.py, read_file.py, setup.py ...
- WPF之旅(一)- 概述
WPF与之前出现的其他技术相比引入了“内置硬件加速”和“分辨率无关”等创新功能.WPF是一种成熟的技术,它是几个已经发布的.NET平台的一部分,并通过几个版本不断地进行完善(WPF3.0 -> ...
- 从零开始学ios开发(五):IOS控件(2),Slider
下面继续学习ios的其他控件,这次会使用到的控件有Slider,当然还有一些之前已经使用过的控件Label. 这次我们不新建一个project了,当然如果你愿意重新创建一个新的项目也完全可以,我们还是 ...