关于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 ...
随机推荐
- codeblocks 配置交叉编译和调试环境
我要用codeblocks交叉编译和调试arm开发板上的程序,宿主机是ubuntu12.04.开发板是嵌入式linux操作系统. 1.配置交叉编译环境 由上到下,1处直接选择即可.2处是你交叉编译器安 ...
- 怎样把function中的arguments变成普通数组
当我们在写一个具有处理可变长度参数的函数时,需要对arguments做一些操作.但是arguments它并不是一个数组,没有数组的各种操作,而且,JS的严格模式中不允许更改它的值. 这时我们需要将它的 ...
- css3学习笔记之按钮
基本按钮样式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <!DOCTYPE ht ...
- centos6.5安装flume
这里安装flume是因为游戏业务日志搜集和分析用的 1.安装java 环境rpm -ivh jdk-8u51-linux-x64.rpm Preparing... ################## ...
- Android app version code and name
android:versionCode和android:versionName 区别 Android的版本可以在androidmainfest.xml中定义, 主要有android:version ...
- IntelliJ IDEA+Tomcat+Nginx运行git项目
1.克隆Git项目到本地 (1)设置Git工具路径:file>settings>Version Control>Git (2)设置GitHub账户:file>settings& ...
- ASP.NET MVC 应用程序的安全性,看一眼你就会了
1.使用Authorize特性登陆对于我们开发程序而言,基本上都是要求角色成员使用Authorize特性,比如,对于管理员而言角色是Admin,对于登陆注册登陆用户而言是User那么我们在用户登陆的时 ...
- Android:通过startActivityForResult方法来得到Activity的回传值
在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B activity上得到一些返回值,这个时候我们就不能使用startActivity方 ...
- 下拉刷新--第三方开源--PullToRefresh
效果预览图: 下载地址:https://github.com/chrisbanes/Android-PullToRefresh activity_main.xml: <RelativeLayou ...
- jdbc连接数据库使用sid和service_name的区别
问题描述: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connect ...