写在前面的话

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

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中从1000万个随机数中查找出相同的10万个随机数花的最少时间

    偶然在群里看到有人问到大数据查询,自己也就想了小艾改如何解决,从从1000万个随机数中查找出相同的10万个随机数花的最少时间, 谈到效率,自然是hashmap莫属. import java.util. ...

  2. 关于js unshift() 与pop() 功能

    最近在研究如何精简贪吃蛇代码,网上许多大神已经将其精简到30行之内就可以搞定. 我尝试着学习并且研究是否能进一步精简的方式. 偶然间又重新温习了一遍pop()和unshift() 的功能.(之前有学过 ...

  3. JCrop+ajaxUpload 图像切割上传

    先看效果 需要的文件下载 链接:http://pan.baidu.com/s/1b8SI6M 密码:59ct 页面代码 里面用户的uuid是写死的test <%@ page language=& ...

  4. 判断不在Update Task中

    CALL FUNCTION 'TH_IN_UPDATE_TASK'   IMPORTING     IN_UPDATE_TASK = IN_UPDATE_TASK.  "0 then not ...

  5. JAVA设计模式(DESIGN PATTERNS IN JAVA)读书摘要 第1部分接口型模式——第4章 外观(Facade)模式

    外观模式就类似于一个工具包,一个类对应一个功能. 外观模式的意图是为子系统提供一个接口,便于它的使用. 书中给出的例子是画一个哑弹的飞行路径, 初始的类的设计是这样的,看下图, ShowFlight类 ...

  6. struts2中constant参数设置

    序号 方法 说明 1 <constant name="struts.i18n.encoding" value="UTF-8"/> 指定web应用默认 ...

  7. 《boot分区监控的小脚本》

    #!/bin/bash TEST=`df | grep "boot" |awk '{print $5}' |cut -f1 -d"%"` if [ $TEST ...

  8. 安装WordPress详细教程指南

    最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...

  9. PHP中strtotime函数使用方法分享

    在PHP中有个叫做strtotime的函数.strtotime 实现功能:获取某个日期的时间戳,或获取某个时间的时间戳.strtotime 将任何英文文本的日期时间描述解析为Unix时间戳[将系统时间 ...

  10. cookie工作原理

    当客户访问某个基于PHP技术的网站时,在PHP中可以使用setcookie()函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在C:\Documents andSettings ...