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)
上一篇 2022年7月17日 下午3:36
下一篇 2022年7月17日 下午3:36


相关推荐

  • C语言中volatile关键字的作用

    C语言中volatile关键字的作用一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变

    2022年6月1日
    39
  • Java 字符串包含_实现字符串的复制

    Java 字符串包含_实现字符串的复制1问题描述给定一长字符串A和一短字符串B。请问,如何最快地判断出短字符串B中的所有字符是否都在长字符串A中?请编写一个判断函数实现此功能。为简单起见,假设输入的字符串只包含小写英文字母。下面举几个例子。(1)如果字符串A是”abcd”,字符串B是”bad”,答案是包含,因为字符串B中的字母都在字符串A中,或者说B是A的真子集。(2)如果字符串A是”abcd”,字符串B是”bce”,答案是…

    2022年10月9日
    4
  • Kimi与财新传媒达成合作

    Kimi与财新传媒达成合作

    2026年3月12日
    2
  • php dropdownlist,遇到dropdownlist[通俗易懂]

    php dropdownlist,遇到dropdownlist[通俗易懂]ASP.NETDropdownlist错误”CannothavemultipleitemsselectedinaDropDownList.”问题有时,当我们试图指定一个ASP.NETDropdownlist选中的项目时遇到这样的报错”CannothavemultipleitemsselectedinaDropDownList.”使用下面这些代码有可能出现这个报错…

    2022年10月16日
    5
  • 免费申请国外免费域名超详细教程

    免费申请国外免费域名超详细教程1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

    2022年6月30日
    51
  • idea打包教程[通俗易懂]

    idea打包教程[通俗易懂]然后点apply/ok

    2022年10月3日
    4

发表回复

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

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