概述

StringBuilder表面看起来是用来拼接、处理字符串的一个工具类,但它的内部实现其实是处理字符序列。

StringBuilder与StringBuffer

  • StringBuilder与StringBuffer具有相同的功能。
  • StringBuffer支持了线程安全(同步访问)。
  • 下文仅以StringBuilder举例。

拼接、反序、替换、删减、插入

void append(XXX xxx)
拼接,可接收大部分基本数据类型、String、char[]等等,甚至能接收StringBuilder。

        StringBuilder sb = new StringBuilder();sb.append(8).append("乘以").append(6.6).append('=').append(true);sb.append(new StringBuilder("!!!"));System.out.println(sb); // 输出结果为:8乘以6.6=true!!!

void reverse()
反转顺序。

        StringBuilder sb = new StringBuilder("猪头大一来过上海");sb.reverse();System.out.println(sb); // 输出结果为:海上过来一大头猪

void replace(int start, int end, String str)
根据索引把某部分替换成其它的。

        StringBuilder sb = new StringBuilder("春眠不觉晓,处处闻啼鸟。");sb.replace(8, 11, "蚊子咬");System.out.println(sb); // 输出结果为:春眠不觉晓,处处蚊子咬。

void delete(int start, int end)
根据索引删减某部分。

        StringBuilder sb = new StringBuilder("爸爸的脸蛋有很多褶皱");sb.delete(3, 4);System.out.println(sb); // 输出结果为:爸爸的蛋有很多褶皱

void insert(int offset, XXX xxx)
在索引位置插入一段。

        StringBuilder sb = new StringBuilder("《摔跤吧!爸爸》");sb.insert(3, "了");System.out.println(sb); // 输出结果为:《摔跤了吧!爸爸》

容量和长度

new StringBuilder(int capacity)
StringBuilder默认的初始容量是16,可用带参构造器来自定义初始容量。
当字符个数达到了当前容量,则容量会自动提升,容量提升的规律为:新容量 = 旧容量 * 2 + 2。

int capacity()
返回当前字符序列的容量。

int length()
返回当前已存储的字符的个数。

        StringBuilder sb = new StringBuilder(6);sb.append("执子之手,方知子丑。");System.out.println(sb.capacity()); // 转出结果为:26System.out.println(sb.length()); // 转出结果为:10

获取内容

char charAt(int index),根据索引,得到相应字符。
String substring(int start),根据索引,以字符串形式截取尾部段。
String substring(int start, int end),根据索引,以字符串形式截取内部段。
String toString(),以字符串形式输出整段。

返回匹配对应的索引

int indexOf(String str),输出第一个匹配的索引。
int indexOf(String str, int fromIndex),从指定的索引处开始,输出第一个匹配的索引。
int lastIndexOf(String str),输出最后一个匹配的索引。
int lastIndexOf(String str, int fromIndex),从指定的索引处开始,输出最后一个匹配的索引。

想知道更多StringBuilder的用法,请浏览Java StringBuffer 和 StringBuilder 类 | 菜鸟教程

Java:StringBuilder的基本使用相关推荐

  1. Java StringBuilder神话被揭穿

    神话 用加号运算符连接两个字符串是万恶之源 -匿名Java开发人员 注意 :此处讨论的测试的源代码可以在Github上找到 从大学时代起,我就学会了使用+运算符将Java中的String连接视为致命的 ...

  2. Java StringBuilder

    Java StringBuilder class is mutable sequence of characters. StringBuilder Class can be comparable to ...

  3. java stringbuilder 清空问题

    java stringbuilder 清空问题 我也是碰到了这个问题才开始研究的,网上答案偏多,并且时间范围也比较大,各个版本的java 优化也不清楚,只能说我的java环境是1.7,测试给大家看. ...

  4. android stringbuilder 清空,java stringbuilder清空的方法

    java stringbuilder清空的三种方法 1.新生成一个,旧的由系统自动回收 2.delete 方法 builder1.delete(0, builder.length()); 3.Leng ...

  5. java stringbuilder 替换字符串_java中的经典问题StringBuilder替换String

    遇到一个面试题:在下面的例子中用"+"运算符连接字符串与用StringBuilder对象的append方法连接字符串哪个性能比较优异. 下图是给出的例子,例一,使用"+& ...

  6. java stringbuilder换行_初遇Java StringBuffer 和 StringBuilder 类利用 StringBuilder 给TextView实现换行处理...

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...

  7. Java StringBuilder getChars()方法与示例

    StringBuilder类的getChars()方法 (StringBuilder Class getChars() method) getChars() method is available i ...

  8. Java StringBuilder codePointAt()方法与示例

    StringBuilder类codePointAt()方法 (StringBuilder Class codePointAt() method) codePointAt() method is ava ...

  9. Java StringBuilder subSequence()方法与示例

    StringBuilder类subSequence()方法 (StringBuilder Class subSequence() method) subSequence() method is ava ...

  10. Java StringBuilder codePointCount()方法与示例

    StringBuilder类codePointCount()方法 (StringBuilder Class codePointCount() method) codePointCount() meth ...

最新文章

  1. Petshop3.0学习笔记(二)Global.asax文档分析
  2. 从科学简历看研究方法——爱因斯坦探索性的演绎法
  3. mysql 锁测试_mysql行级锁测试 - echowu007的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. SQLserver2008数据表的修改操作
  5. springMVC 相对于 Structs 的优势
  6. 调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别...
  7. Chrome运行时性能瓶颈分析
  8. html5中api有什么,HTML5中的API概览
  9. 十、request.getSession( )、reqeust.getSession(false)和 request.getSession(true)
  10. 继承类 基类的赋值_Chapter10:继承与派生(四)
  11. 用实际的软件编程示例解释C#中的装饰器模式
  12. SAP License:内部顾问的培养与成长
  13. 面向对象程序设计c 语言描述 答案,c面向对象程序设计习题解答全.doc
  14. [破解] DRM-内容数据版权加密保护技术学习(中):License预发放实现
  15. 读《刘帅:在失望中寻找希望》有感
  16. linux复制远程文件和文件夹
  17. 起始方位角怎么确定_工程测量中的导线测量,最初的方位角怎么求?
  18. 黑马点评项目-UV 统计
  19. 四柱八字大全 php,四柱八字
  20. 安卓版恶搞锁suo机生成器(百度云)

热门文章

  1. Android Cookie 解析并且设置给WebView 保持登陆状态
  2. 保险科普|人生的7张保单
  3. 比毒品成瘾更可怕的,是垃圾快乐成瘾
  4. 1.HashMap_1:什么是HashMap???HashMap有什么特点???HashSet和hashMap之间的关系是什么???HashMap常用方法有八些???
  5. 好用的手机号码归属地、吉凶及号码估值查询API接口
  6. 【LaTex】写论文时关于嵌入字体embedded fonts的问题
  7. 【课程记录·本】WUT数据结构与算法综合实验 | 基于C++MFC的欢乐连连看游戏的设计与实现(附下载链接)
  8. 根据下拉框的选择显示不同图片
  9. Android Studio设置字体大小
  10. 【移动安全高级篇】————6、Android DEX安全攻防战