StringBuilder的用法

StringBuilder的用法StringBuilder简介StringBuilder最早出现在JDK1.5,是一个字符拼接的工具类,它和StringBuffer一样都继承自父类AbstractStringBuilder,在AbstractStringBuilder中使用char[]value字符数组保存字符串,但是没有用final关键字修饰,所以StringBuilder是可变的。性能StringBuilder对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小。与StringBuffer相比Str

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

StringBuilder简介

StringBuilder 最早出现在JDK1.5,是一个字符拼接的工具类,它和StringBuffer一样都继承自父类AbstractStringBuilder,在AbstractStringBuilder中使用char[] value字符数组保存字符串,但是没有用final关键字修饰,所以StringBuilder是可变的。

性能

StringBuilder 对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小。
与StringBuffer相比StringBuilder的性能略高(15%~30%),StringBuffer为保证多线程情况下的安全性(synchronize加锁)而牺牲了性能,以时间来换取安全。而StringBuilder则没有保证线程的安全,从而性能略高于StringBuffer。

使用场景

频繁使用字符串拼接的时候可以用StringBuilder(推荐)或者StringBuffer。

用法

一、StringBuilder对象的创建(下文builder是StringBuilder创建出来的对象)

1.常规创建

StringBuilder builder = new StringBuilder();

2.在创建的时候添加初始字符串

StringBuilder builder = new StringBuilder("abc");

3.在创建的时候添加初始长度

StringBuilder builder = new StringBuilder(初始长度);

这里需要注意的是如果在StringBuilder的对象创建时没有指定长度,StringBuilder对象会自动生成一个16位的字符数组

二、StringBuilder对象的方法

数据的种类可以有:

类型
Object
String
StringBuffer
CharSequence
char[]
boolean
char
int
long
float
double

1.builder.append()

作用:追加数据

		builder.append("just");

在加入新字符串时,不会在内存中新开辟字符串空间,只是给原有的字符串尾部加入新字符串

2.builder.insert()

作用:向指定位置插入数据

builder.insert(0, "you");

每次加入新字符串之后都会改变字符串中每个字符的地址
插入后原始指定位置的数据向后移

3.builder.deleteCharAt()

作用:删除指定位置的数据

builder.deleteCharAt(index);

4.builder.delete( )

作用:删除指定范围的数据左闭右开

builder.delete(beginIndex, endIndex);

范围:从开始位置到结束位置的前一个

5.builder.toString()

作用:将对象中的数据以字符串的形式返回

builder.toString();

6.builder.reverse()

作用:将对象中的数据反转

builder.reverse();

注意
原始数组长度不够时,在传入新字符串时会增加数组长度,并将原来的数据传到新数组中,反复添加遇到这种情况时会对内存造成损耗,为了避免这种情况,可以在创建时提前给StringBuilder对象设置长度:StringBuilder builder = new StringBuilder(初始长度)。

以上就是StringBuilder的全部内容,如有不当请大家多多指正。

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

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

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


相关推荐

  • Java中的map集合顺序如何与添加顺序一样

    Java中的map集合顺序如何与添加顺序一样一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢?这里有2个,treeMap和linkedHashMap,但是,要达到我们的要求:按添加顺序保存元素的,就只有LinkedHashMap。下面看运行的代码。packagecom.lxk.collectionTest;impor…

    2022年5月30日
    104
  • 实施运维企业面试题-5「建议收藏」

    实施运维企业面试题-5「建议收藏」NETWORK1请描述TCP/IP协议中主机与主机之间通信的三要素参考答案IP地址(IPaddress)子网掩码(subnetmask)IP路由(IProuter)2请描述IP地址的分类及每一类的范围参考答案A类1-26B类128-191C类192-223D类224-239组播(多播)E类240-254科研3请描述A、B、C三类IP地址的默认子网掩码参考答案A类255.0.0.0B类255.255.0.0C类

    2022年5月5日
    34
  • matlab柱状图显示百分比_两年数据对比柱形图matlab

    matlab柱状图显示百分比_两年数据对比柱形图matlab这个小代码用于matlab柱状图显示比例及数值,函数如下:functionmyhist(x)%myhistCodebySimonLiang%Email:idignew@126.com%用于显示柱状图比例及具体数值h=histogram(x);holdon;%显示柱状图数值hBin=h.BinEdges(1:end-1)+h.B…

    2022年10月7日
    0
  • mac 下安装双系统同时启动方案「建议收藏」

    mac 下安装双系统同时启动方案「建议收藏」本文经过实测后记录,以备后查,原本是买回来的本子上,销售商已帮我装上了MACOSX和WIN7双系统,WIN7单独装在一个区下面,后来觉得OSX系统东西太多,清理麻烦,就重装了一下OSX,重装后发现原来的WIN7还是可以启动的,直接在开机状态下按住option键,选择WIN7的启动分区就可以。这点倒是比WINDOWNS系统要好。但这种情况下想使用WIN7的话,就得重启系

    2022年9月1日
    2
  • JAVA链表中的回文链表结构

    JAVA链表中的回文链表结构作为一个java初学者,最近遇到了回文链表结构这个难题,经过一番学习总算搞清楚个大概。先来说一下什么是回文链表,会问链表在我们生活中经常能够遇到。会问链表的结构就是例如:1->2->3->2->1。我们将它反转过来还是与原链表相同,这种就称为回文结构。具体方法:1.先找到链表的中间位置2.然后将中间位置的链表反转3.从两边向中间遍历代码如图classNode{publi…

    2022年5月7日
    49
  • XRay安装使用以及Burp联动

    XRay安装使用以及Burp联动0x00前言XRay是长亭科技洞鉴核心引擎中提取出的社区版漏洞扫描神器,属于一款功能十分强大的国产被动扫描工具,其应用范围涵括,Web通用漏洞扫描、被动代理扫描、社区POC集成……XRay的定位是一款安全辅助评估工具,而不是攻击工具,其内置的所有payload和poc均为无害化检查。毫不犹豫的说,XRay属于渗透测试人员安全渗透的一大神兵利器!可以想象,当Burp与XRay联动时,必将碰撞出不一样的火花!0x01下载XRay…

    2022年5月7日
    491

发表回复

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

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