概述

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. 偶然发现的QQ的一个挺讨厌的BUG
  2. 苏宁高时效、高并发秒杀业务中台的设计与实现
  3. 蓝牙BLE ATT剖析(二)-- PDU
  4. 用 php写的条件语句-三种条件语句
  5. wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
  6. [转载]MVP(SC),MVP(PV),PM,MVVM 和 MVC 表现模式架构对比
  7. 必填校验加变色,点击颜色消失
  8. 全球通吃的九大黄金专业
  9. tensorflow学习之tf.assign
  10. java 随机生成图_java – 如何生成随机图?
  11. macOS 安装和管理多个Python版本
  12. 在使用刚体时的几个注意点和参数
  13. 建议收藏!高企申报全流程梳理:带你了解安徽省及16市高企申报的内容及要点
  14. 索迪斯携手喜茶致敬白衣天使、慰问抗疫英雄
  15. 跌破150美元、市值蒸发3600亿美元,这个圣诞节苹果过得“太冷了”!...
  16. 计算机界五位巾帼英雄
  17. 塔木德分财产,有图,快速过关
  18. Excel2007中固定表头或列
  19. linux 查看hive版本号,查看hive版本号
  20. HBuilder如何进行云打包Uview项目

热门文章

  1. Linux中网卡未激活解决方案
  2. 基于Java的简单零食商城管理系统
  3. java 当文件夹不存在时,自动创建文件夹
  4. JavaScript 进阶第一章(分支结构)
  5. 福昕阅读器怎么添加电子图章?
  6. iOS审核马甲包被拒4.3的解决方案
  7. 内存对齐与CPU缓存
  8. 领导力提升,我只推荐这一本书!
  9. 【王喆-推荐系统】(task1)推荐系统的五大特征(特征工程篇)
  10. huffman编译码