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)
上一篇 2022年6月28日 下午7:16
下一篇 2022年6月28日 下午7:16


相关推荐

  • 【java】详解native方法的使用

    【java】详解native方法的使用目录结构 关于 native 关键字使用 native 关键字使用步骤案例编写 java 文件编译 java 文件获得 h 文件编写 hello cpp 文件部署 hello dll 文件运行 HelloWorld class 文件参考文章 1 关于 native 关键字想必读者已经了解过 native 关键字了 这里笔者就大致囊括一下 被 native 关键字修饰的方法叫做本地方法 本地方法和其它方法不一样 本地方法意味着和平台有关

    2026年3月16日
    3
  • 数据结构 图的邻接表

    数据结构 图的邻接表呃,下面该写邻接表了…….邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。邻接表为了避免内存的浪费引入了链式存储,它的处理办法是:1.用一个一维数组存储顶点,当然你也可以用单链表存储,2.用单链表存储顶点的邻接点,可以将顶点改为结构体数组,结构体中存放邻接点的指针,邻接点也创建一个结构体,定义指针…

    2022年6月28日
    23
  • hdu 2074 堆放篮 好开心图纸标题

    hdu 2074 堆放篮 好开心图纸标题

    2021年12月31日
    47
  • pycharm怎么设置注释颜色_pycharm调颜色

    pycharm怎么设置注释颜色_pycharm调颜色”””代码块注释”””单行注释颜色设置Preferences–>Editor–>CorlorScheme–>Python–LineComment多行注释颜色设置: 1)修改函数内部代码块说明颜色Preferences–>Editor–>CorlorScheme–>Python–Docstring–>Text2)修改多行注释颜色Preferences–>…

    2022年8月28日
    5
  • 通俗理解PCA降维作用

    通俗理解PCA降维作用本文主要介绍一种降维方法 PCA PrincipalCom 主成分分析 降维致力于解决三类问题 1 降维可以缓解维度灾难问题 2 降维可以在压缩数据的同时让信息损失最小化 3 理解几百个维度的数据结构很困难 两三个维度的数据通过可视化更容易理解

    2026年3月20日
    1
  • idm下载百度网盘有限制 提示403错误 下载显示没有权限404,最新的解决办法教程

    idm下载百度网盘有限制 提示403错误 下载显示没有权限404,最新的解决办法教程近期idm下载百度网盘速度在20k/s-50k/s左右,针对这个问题,在2020年10月25日,百度网盘直链提取作者更改了下载接口,速度又能达到nm/s了。user-agent需要更改为netdisk没有了下载数的限制,可以尽可能把下载线程拉高以提高下载速度,服务器可以不填写了,支持同时下载多个文件,不会再提示403错误了以下为测试截图我用的是校园网,每秒接近三M已经很快了,一百多M的视频几秒钟就完事儿了,还是很赞的!如果大家喜欢今天的推文的话,希望大家支持一下小编,点个在看啥的,谢谢大家!今

    2022年6月16日
    109

发表回复

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

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