写在前面的话

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

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的更多相关文章

  1. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  2. 计算机程序的思维逻辑 (30) - 剖析StringBuilder

    上节介绍了String,提到如果字符串修改操作比较频繁,应该采用StringBuilder和StringBuffer类,这两个类的方法基本是完全一样的,它们的实现代码也几乎一样,唯一的不同就在于,St ...

  3. StringBuilder的使用

    今天用到了StringBuilder来拼接查询语句,发现这个真好用,决定做个小结. 百度一个StringBuilder的定义:String 对象是不可改变的.每次使用 System.String 类中 ...

  4. Java--String 和StringBuilder、StringBuffer 的区别?

    1.String是只读字符串,引用的字符串内容是无法改变的. 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改. 3.StringBuilder没有被synchro ...

  5. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  6. String、StringBuffer与StringBuilder之间区别

    关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder >  String ...

  7. String StringBuffer StringBuilder

    package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...

  8. StringBuffer与StringBuilder的简单理解

    联系:两者都适用于字符串的操作,都可以随便对字符串的内容进行变更操作,都继承至AbstractStringBuilder. 区别:StringBuffer是线程安全的,方法都加了synchronize ...

  9. 关于StringBuffer和StringBuilder

    StringBuffer 字符串特点:字符串是常量:它们的值在创建之后不能更改. 字符串的内容一旦发生了变化,那么马上会创建一个新 的对象. 注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创 ...

  10. string,stringbuilder,stringbuffer用法

    总结:1.如果要操作少量的数据用 = String   ==================================>字符串常量2.单线程操作字符串缓冲区 下操作大量数据 = Strin ...

随机推荐

  1. JAVA作业-1

    编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. import javax.swing.JOptionPane; // import class JOptionPane publ ...

  2. Java中浮点数能连续精确表示整数的范围

    转自http://blog.csdn.net/seizef/article/details/5571783#ref_1,有删改. 先简单介绍一下浮点数在计算机中的组成,在Java中采用的浮点数表示法是 ...

  3. NOIP 2015复赛提高组Day2 T1==Codevs 4768 跳石头

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold  题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中 ...

  4. LLVM language 参考手册 翻译停止相关

    再翻译LLVM language 参考手册的时候,个人感觉很多东西都不是很懂,因此打算学习完编译原理后再去继续研究翻译,多有不便望见谅

  5. hadoop分布式安装过程

    一.安装准备及环境说明 1.下载hadoop-1.2.1,地址:http://apache.spinellicreations.com/hadoop/common/stable/hadoop-1.2. ...

  6. Yii2框架数据库增删改查小结

    User::find()->all();    //返回所有用户数据:User::findOne($id);   //返回 主键 id=1  的一条数据: User::find()->wh ...

  7. 集成环境wamp环境下 memcached的安装

    早就听说过memcached,但是一直没实践过.所有今天有时间就搞了一下,哎废了我一上午才搞定!一上午啊,好丢人.特写记录一下 先说一下我遇到的问题:按照别人教程(还有好多)说的,安装后没有任何的错误 ...

  8. Golang container/ring闭环数据结构的使用方法

    //引入包 import "container/ring" //创建闭环,这里创建10个元素的闭环 r := ring.New(10) //给闭环中的元素附值 for i := 1 ...

  9. Freemarker例子

    1.引入架包 2.写ftl文件 3.代码 hello.ftl 你好啊,${hello},今天你的精神不错! if else 语句测试 <#if num gt 18><#-- 不使用 ...

  10. VS2010打开VS2012解决方法

    VS2012中对C#的支持度非常好,不管是编写方便程度(不需要插件就能高亮代码及代码自动提示功能),还对MFC的一些功能优化很多. 我们可以修改两个工程文件来把VS2012的工程文件一直到VS2010 ...