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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 让程序员崩溃的瞬间(非程序员勿入)(程序员形象都不好)

    阅读本文大概需要2.3333分钟。前方高能,每一个程序员看完,你不笑死个人,你来找我,我自己看了好几遍,反正笑的停不下来,太特么有才了。1.公司实习生找Bug2….

    2022年4月10日
    27
  • 快速搭建个人博客——保姆级教程「建议收藏」

    文章目录序言本地网站开发工具WebStormVscode框架Hexo(强烈推荐)WordPress本地环境gitnode.jsHexo安装初始化主题样式Butterfly应用正式上线图床Butterfly配置GitHubPages配置服务器选购攻略阿里云学生专享活动专享腾讯云学生专享活动专享域名购买DNS解析添加域名添加解析记录服务器购买部署密码设定远程连接git配置安装NginxHexo配置修改备案ICP联网备案序言偶然间,看到某乎上高赞的一个问题:怎么证明下计算机专业学生的能力?问题下面呢,也是有

    2022年4月15日
    41
  • 医学图像处理最全综述「建议收藏」

    目录0、引言1、病变检测2、图像分割基于深度学习的医学图像分割与检测3、图像配准图像配准的定义4、图像融合5、预测与挑战6、结论参考文献0、引言医学图像处理的对象是各种不同成像机理的医学影像,临床广泛使用的医学成像种类主要有X-射线成像(X-CT)、核磁共振成像(MRI)、核医学成像(NMI)、超声波成像(UI)四类。在目前的影像医疗诊断中,主要是通过观察一组二维切片图象去发现病变体,这往往需要借助医生的经验来判定。利用计算机图像处理技术对二维切片图象进行.

    2022年4月7日
    198
  • 使用AnalyticDB MySQL创建数据库及表过程

    使用AnalyticDB MySQL创建数据库及表过程简介目标是让云上数据仓库用户及开发者通过简单的步骤体验基于AnalyticDBMySQL版和DMS构建云原生数据仓库的主要流程,场景将通过实例的开通、结构与数据的初始化、报表的开发、报表可视化等环节,用3个具体的应用场景来体验AnalyticDBMySQL版在新零售场景下的交互查询和ETL计算速度,以及通过DMS进行数据仓库数据报表开发的流程。提供的数据集是一个零售场景的模拟数据,包括客户信息、订单记录、货物信息、国家地域信息等内容,数据总量10GB,最大数据表记录数为5999万条。产品简介云原

    2022年9月17日
    0
  • python缩进错误-如何改正python缩进错误[通俗易懂]

    广告关闭2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。我正在尝试制作一个程序,给我一个可能的密码列表,并将它们放入记事本文件中完整的错误回溯如下:文件“pass_crack_list.py”,第16行file.write(猜测+尝试)#unexpectedindenterror..为什么?!taberror:缩进中不…

    2022年4月8日
    60
  • bitnami redmine mysql_Bitnami Redmine相关配置

    bitnami redmine mysql_Bitnami Redmine相关配置下载安装文件bitnami-redmine-3.3.1-0-linux-x64-installer.run官方下载链接:https://bitnami.com/stack/redmine/installer百度网盘链接:http://pan.baidu.com/s/1eRZsfmU密码:iorm一、给文件赋可执行权限。chmod777bitnami-redmine-3.3.1-0-linux…

    2025年6月9日
    0

发表回复

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

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