StringBuilder类分享(1)

一、StringBuilder说明

StringBuilder是一个可变的字符序列。这个类提供了一个与StringBuffer兼容的API,但不保证同步,即StringBuilder不是线程安全的,而StringBuffer是线程安全的。显然,StringBuilder要运行的更快一点。

这个类被设计为在字符串缓冲区所在的地方作为StringBuffer的临时替代品使用由单个线程使用(通常是这样)。在可能的情况下,建议优先使用该类而不是StringBuffer,因为在大多数实现中它会更快。


二、StringBuilder常用方法

(1)无参构造函数

 

public StringBuilder() {super(16); // 调用父类的构造方法,并默认初始化长度为16
}
其中super(16)表示:AbstractStringBuilder(int capacity) {value = new char[capacity]; // 初始化一个长度为16的char型可变数组
}

(2)有参构造(两种)

public StringBuilder(String str) {super(str.length() + 16); // 通常调用父类的构造方法,但参数为传入字符串的长度+16append(str); // 将入参str添加到stringbuilder中}public StringBuilder(CharSequence seq) { // CharSequence 是一个描述字符串结构的接口,在这个接口里一共有三个常用的子类:String,StringBuffer,StringBuilderthis(seq.length() + 16);append(seq);}

(3)添加方法

public StringBuilder append(StringBuffer sb) {super.append(sb);return this;}@Override
public StringBuilder append(CharSequence s) {super.append(s);return this;}@Override
public StringBuilder append(CharSequence s, int start, int end) {super.append(s, start, end);return this;}@Override
public StringBuilder append(char[] str) {super.append(str);return this;}@Override
public StringBuilder append(char[] str, int offset, int len) {super.append(str, offset, len);return this;}@Override
public StringBuilder append(boolean b) { // 这里的入参还可以替换为char,int,float,long,doublesuper.append(b);return this;}

(4)删除方法

@Override
public StringBuilder delete(int start, int end) {super.delete(start, end); // 删除[start, end)区间内的字符串return this;}@Override
public StringBuilder deleteCharAt(int index) { // 删除指定索引位置的字符串super.deleteCharAt(index);return this;}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88268.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器中了mkp勒索病毒该怎么办?勒索病毒解密,数据恢复

mkp勒索病毒算的上是一种比较常见的勒索病毒类型了。它的感染数量上也常年排在前几名的位置。所以接下来就由云天数据恢复中心的技术工程师来对mkp勒索病毒做一个分析,以及中招以后应该怎么办。 一,中了mkp勒索病毒的表现 桌面以及多个文件夹当中都有一封…

LeetCode(力扣)530. 二叉搜索树的最小绝对差Python

LeetCode530. 二叉搜索树的最小绝对差 题目链接代码 题目链接 https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # …

无涯教程-机器学习 - 数据可视化

在上一章中,无涯教程讨论了数据对于机器学习算法的重要性,以了解具有统计信息的数据,还有另一种称为可视化的方式来理解数据。 借助数据可视化,可以看到数据的属性保持什么样的关联,这是查看要素是否与输出相对应的最…

Docker拉取RocketMQ及可视化界面

本文介绍Docker拉取RocketMQ及可视化界面操作步骤 Linux下安装Docker请参考:Linux安装Docker 文章目录 安装namesrv创建挂载目录授权相关权限拉取镜像运行容器查看运行情况 安装Broker创建挂载目录及配置文件目录授权相关权限创建配置文件运行容器查看运行情况 安装…

基于 vue2 发布 npm包

背景:组件化开发需要,走了一遍发布npm包的过程,采用很简单的模式实现包的发布流程,记录如下。 项目参考:基于vue的时间播放器组件,并发布到npm_timeplay.js_xmy_wh的博客-CSDN博客 1、项目初始化 首先&a…

Java中word转Pdf工具类

背景: 最近做的一个项目中,对于word转Pdf用的地方很多,特此记录 搭建总图: 代码部分: 1.需要的jar包: aspose-words-15.8.0-jdk16.jar 注:下载好这个jar包后,在项目的根目录新建一…

Android全面屏下,默认不会全屏显示,屏幕底部会留黑问题

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 公司以前的老项目,便出现了这种情况,网上搜索了各种资料&#xf…

搭建开发环境-Mac

概述 上一篇搭建开发环境-WSLUbuntu 记录了WSL 和Ubuntu 下开发环境的搭建。这一篇就说下Mac开发环境的搭建。 就像很多人误以为Mini 是专为女孩子设计的高颜值车,其实是一辆极其hardcore 的拉力车一样。 很多人都被Mac 那高颜值蒙蔽了,其实这是一台生产…

全景图像生成算法

摘要 全景图像生成是计算机视觉领域的一个重要研究方向。本文对五种经典的全景图像生成算法进行综述,包括基于相机运动估计的算法、基于特征匹配的算法、基于图像切割的算法、基于多项式拟合的算法和基于深度学习的算法。通过对这些算法的原理、优缺点、适用场景等…

【Unity】【Amplify Shader Editor】ASE入门系列教程第一课 遮罩

新建材质 (不受光照材质) 贴图:快捷键T 命名: UV采样节点:快捷键U 可以调节主纹理的密度与偏移 添加UV流动节点: 创建二维向量:快捷键 2 遮罩:同上 设置shader材质的模板设置 添加主…

CSS中如何实现文字阴影效果(text-shadow)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 实现思路⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

扬杰科技携手企企通,召开SRM采购供应链协同系统项目启动会

近日,中国功率半导体领先企业扬州扬杰电子科技股份有限公司(以下简称“扬杰科技”)与企企通召开SRM采购供应链协同系统项目启动会,双方项目团队成员一同出席本次会议。 会上,双方就扬杰科技采购供应链管理平台项目的目…