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的全部内容,如有不当请大家多多指正。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 金士顿16G优盘_金士顿u盘格式化分配单元大小

    金士顿16G优盘_金士顿u盘格式化分配单元大小事情起因好好的金士顿16g优盘(绝对是真的,之前本人已经使用了2年多),今天本来准备用U盘装个win10系统,从微软官网下载了MediaCreationTool.exe用这个工具做了一个U盘系统,然后装系统(系统也没有装成。。。。。悲剧),谁知道重启之后,优盘可以识别,但是只显示一个盘符,没有容量,双击优盘,就显示请插入优盘之类的。换了一台电脑,插上U盘,显示需要格式化,那就格式化吧。。。。。。几

  • QcustomPlot 多条单条曲线光标自动更随的实现

    QcustomPlot 多条单条曲线光标自动更随的实现QcustomPlot光标跟随最近有一个需求是能绘制多条曲线且能光标跟随,上网搜了很多相关的资料,如下边这个博客中查到了鼠标更随的相关代码,他的图如下所示——[原文链接地址](https://blog.csdn.net/sunnyloves/article/details/82344815)还有一篇如下所示——[原文链接地址](https://www.cnblogs.com…

    2022年10月16日
  • IDEA2021.5 激活码[在线序列号]

    IDEA2021.5 激活码[在线序列号],https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 粒子群优化算法的实现方式_matlab粒子群优化算法

    粒子群优化算法的实现方式_matlab粒子群优化算法粒子群优化算法实现容易、精度高、收敛快,在解决实际问题中展示了其优越性。文章目录1算法基本概念2算法的MATLAB实现3粒子群算法的权重控制4混合粒子群算法参考文献1算法基本概念粒子群优化算法属于进化算法的一种,通过追随当前搜索到的最优值来寻找全局最优。粒子群算法也称粒子群优化算法(ParticleSwarmOptimization,PSO),PSO有几个关键概念:粒子、优化函数、适值(FitnessValue)、飞行方向、飞行距离。2算法的MATLAB实现3粒子群算法的权重控

    2022年10月11日
  • mysql中如何修改表的名字?修改表名?

    mysql中如何修改表的名字?修改表名?mysql>createtablets01liketi_o_sms;#创建表结构.这样的建表方式,不仅仅是表的结构,连带着索引也会同时创建.QueryOK,0rowsaffected(0.02sec)mysql>altertablets01renametots01_new;#修改表名的语法:altertablerenameto/asnew_tablename;QueryOK,0rowsaffected(0.00s.

  • verilog_移位寄存器_仿真(程序逐句解释)

    verilog_移位寄存器_仿真(程序逐句解释)前言  之前老是想着学的快点,就直接编译了程序就下载在开发板上跑,后来发现这样不行,因为如果程序有问题,验证和纠错的时间成本太高了(毕竟vivado跑一次花的时间很长),反过来学习仿真,下面是一点心得和体会。开发环境编译软件及版本:vivado2019.2编译语言:verilog  网上随便找了一个简单程序和仿真,先实现复现,再谈其他。下面我将先给出代码和仿真截图,再说具体的东西。移位寄存器程序代码:`timescale1ns/1ps/////////////////////////

发表回复

您的电子邮箱地址不会被公开。

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