Java:StringBuilder的基本使用

Java:StringBuilder的基本使用概述StringBuilder表面看起来是用来拼接、处理字符串的一个工具类,但它的内部实现其实是处理字符序列。StringBuilder比String具有使用更加方便、运行效率更高的特点。StringBuffer是在StringBuilder的基础上多了线程安全(同步访问)。拼接、反序、替换、删减、插入append(),用于拼接,可接受字符串以及所有的基本数据类型的数据。StringBuildersb=newStringBuilder();sb.ap

大家好,又见面了,我是你们的朋友全栈君。

概述

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()); // 转出结果为:26
        System.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 类 | 菜鸟教程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160699.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tree命令的下载与使用「建议收藏」

    Tree命令的下载与使用「建议收藏」**Tree命令的下载与使用**前言作为一名Linux小白,今天第一次发博客,决定把我今天下载Linux中tree命令的过程记录下来,先来讲一讲我是怎么碰见tree这个命令的吧,今日看书时,无意中翻到tree这个命令得知这个命令可以以树状图列出目录结构,于是我便创建了一个名为aaa的文件夹和一个叫123的文件,并且复制了123文件(123复件),将123文件和123复件移进aaa文件夹,在…

    2022年7月24日
    36
  • manifest 文件作用「建议收藏」

    信息:未找到WinSxS中的程序集。信息:尝试在C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.6195__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL上探测指令清单。信息…

    2022年4月11日
    53
  • Django(46)drf序列化类的使用(ModelSerializer)「建议收藏」

    Django(46)drf序列化类的使用(ModelSerializer)「建议收藏」前言我们上篇文章使用到了Serializer类,可能有小伙伴说太过复杂,那么本篇就为大家带来更加简便的序列化类ModelSerializerModelSerializer先来看下ModelSer

    2022年7月30日
    7
  • 线性内插interp1函数用法

    线性内插interp1函数用法线性内插是假设在二个已知数据中的变化为线性关系,因此可由已知二点的座标(a,b)去计算通过这二点的斜线,公式如下:其中 a 在上式的 b 点即是代表要内插的点,f(b) 则是要计算的内插函数值。下图即是一个以二种内插法的比较\pcxfile[12cm,5cm]{fig9_1.pcx}\caption{线性式与spline函数的曲线契合}线性内插是最简单的内插方

    2022年5月8日
    92
  • Red Hat Enterprise Linux ISO 全镜像下载

    Red Hat Enterprise Linux ISO 全镜像下载1、iso网盘下载地址:https://wanghualang.pipipan.com/dir/13133650-26232498-a8efb3/2、中国大陆开源镜像站汇总,企业贡献: 搜

    2022年7月2日
    25
  • SpringBoot系列之从入门到精通系列教程

    SpringBoot系列之从入门到精通系列教程

    2020年11月19日
    175

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号