Java基础:第二十二讲 SringBuffer的使用

环形缓冲区实现类(RingBuffer) 立即下载

 

StringBuffer 也是字符串,与String 不同的是StringBuffer 对象创建完之后可以修改内容。有如下构造函数:
n         public StringBuffer(int);
n         public StringBuffer(String);
n         public StringBuffer();
第一种构造函数是创建指定大小的字符串,第二个构造函数是以给定的字符串创建StringBuffer 对象,第三个构造函数是默认的构造函数,生成一个空的字符串。下卖弄的代码分别生成了3 个StringBuffer 对象:
              StringBuffer sb1 = new StringBuffer(50);
              StringBuffer sb2 = new StringBuffer(" 字符串初始值");
              StringBuffer sb3 = new StringBuffer();
StringBuffer 对象创建完之后,大小会随着内容的变化而变化。
StringBuffer 的常用方法及其用法如下。
在字符串后面追加内容
方法定义:
l         public StringBuffer append(char c);
l         public StringBuffer append(boolean b);
l         public StringBuffer append(char[] str);
l         public StringBuffer append(CharSequence str);
l         public StringBuffer append(float f);
l         public StringBuffer append(double d);
l         public StringBuffer append(int i);
l         public StringBuffer append(long l);
l         public StringBuffer append(Object o);
l         public StringBuffer append(String str);
l         public StringBuffer append(StringBuffer sb);
l         public StringBuffer append(char[] str,int offset,int len);
l         public StringBuffer append(CharSequence str.int start,int end);
方法描述:在字符串后面追加信息。从上面的方法可以看出在StringBuffer 后面可以添加任何对象。
例如:
              sb1.append('A');
              sb1.append(10);
              sb1.append(" 追加的字符串");
              sb1.append(new char[]{'1','2','3'});
结果:
A10 追加的字符串 123
在字符串的某个特定位置添加内容
与append 方法类似,可以添加各种对象和基本数据库,与append 方法不同的是insert 方法需要指出添加的位置,所以多了1 个参数。
方法定义:
l         public StringBuffer insert(int offset,char c);
l         public StringBuffer insert(int offset,boolean b);
l         public StringBuffer insert(int offset,char[] str);
l         public StringBuffer insert(int offset,CharSequence str);
l         public StringBuffer insert(int offset,float f);
l         public StringBuffer insert(int offset,double d);
l         public StringBuffer insert(int offset,int i);
l         public StringBuffer insert(int offset,long l);
l         public StringBuffer insert(int offset,Object o);
l         public StringBuffer insert(int offset,String str);
l         public StringBuffer insert(int offset,char[] str,int offset,int len);
l         public StringBuffer insert(int offset,CharSequence str.int start,int end);
方法描述:在字符串的某个位置添加信息。
例如(在上面代码的基础上):
                     sb1.insert(4,'x');
                     sb1.insert(5,22);
结果 :
A10 追 x22 加的字符串 123
StringBuffer的长度和容量
length 方法用于获取字符串的长度 ,capacity 方法用于获取容量 , 两个不相等。
方法定义:
l         public int length();
l         public int capacity();
例如:
        System.out.println(sb1.length());
        System.out.println(sb1.capacity());
结果:
15
50
删除某个字符
方法定义:
public StringBuffer deleteCharAt(int index);
方法描述:删除指定位置的字符,索引是从零开始。
例如:
    sb1.deleteCharAt(3);
结果 :
    A10x22 加的字符串123
删除之前的内容为 : A10 追 x22 加的字符串 123 。
删除某个子串
方法定义:
public StringBuffer delete(int start,int end);
方法描述:delete 方法用于删除字符串中的部分字符,第一个参数是删除的第一个字符,第二个参数是删除结束的地方,需要注意3 点:字符串的第一个字符的索引"0" ,第一个参数指定的字符会删除,但是第二个参数指定的字符不会删除.
例如:
sb1.delete(5,8);
结果:
A10x2 字符串 123
    删除前字符串的内容:A10x22 加的字符串123 。
获取字符串中的字符
方法定义 :
    public char charAt(int)
方法描述 :charAt(int) 方法用来获取指定位置的字符。
例如:
    System.out.println(sb1.charAt(5));
结果:
    2
获取字符串中的子串
方法定义:
l         public String substring(int start); 从start 开始到结束的子串。
l         public String substring(int start,int end); 从start 开始到end 结束的子串。
l         public CharSequence subSquence(int start,int end); 从start 开始到end 结束的子串。
方法描述: 用于获取字符串的子串, 第一个方法有一个参数,用于指定开始位置,获取的子串是从该位置开始到字符串的结束,第二个方法有两个参数,第一个指定开始位置,第二个指定结束位置,与delete 方法中的参数用法基本相同象,包含第一个,不包含第二个。第三个方法含义相同。
例如:
    String sub1 = sb1.substring(3,5);
       String sub2 = sb1.substring(4);
转换结果:
    追x
x22 加的字符串123
转换成字符串
方法定义:
public Strnig toString();
方法描述: 把StringBuffer 的内容转换成String 对象。
例如:
    String str1 = sb1.toString();
转换结果:
    str1 的内容为: A10 追 x22 加的字符串 123
 
 
    李绪成 优快云 Blog : http://blog.youkuaiyun.com/javaeeteacher

 

零代码做游戏:AI辅助开发HTML5网页小游戏从创意到发布全流程 在软件开发领域,自然语言编程正成为一种新兴的人机协作方式,而AI辅助开发则是其最典型的落地形态。它让开发者无需精通语法,只需用清晰的语言描述游戏规则与交互逻辑,AI便能自动生成可运行的代码。这种模式大幅降低了编程门槛,尤其适合快速验证创意、制作原型。对于HTML5网页游戏而言,借助AI生成单个HTML文件,配合在线运行环境,即可在浏览器中直接试玩、迭代与分享。无论是产品经理验证玩法、运营人员制作互动小游戏,还是教育者设计课堂闯关,都能通过自然语言描述需求,让AI完成代码实现与报错修复。本文完整记录了一个“接 阅读详情

相关推荐

平衡小车动力学建模

两轮自平衡小车由车体和双轮两部分组成,可以看成一个移动的倒立摆,分别对车轮和车体进行力学分析,建立动力学模型,最后,通过对两者的分析给出系统的状态空间表达式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjiPEUVJ-1679470559950)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230322110521545.png)]

qq_23096319的博客 9056

【Java 基础篇】Java StringBuffer:线程安全的可变字符串操作

本篇博客围绕Java展开了讨论,介绍了的创建和初始化、基本操作、与String的转换以及线程安全性等内容。使用能够在多线程环境下安全地进行字符串操作,确保线程安全性。但需要注意的是,由于同步机制的存在,的性能相对较低。希望本篇博客能够帮助您理解和应用Java,在实际的Java开发中发挥作用。祝您编程愉快!

繁依Fanyi的博客 2942

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 524

Java日常刷题基础小结(1)

charAt(int index) 方法 java.lang.String.charAt(); public char charAt(int index); index:字符的索引值。 索引范围是从 0 到 length() - 1。 返回值:字符串中索引index所指的char值。 String A = "abcdef"; char a = A.charAt(0); // a = 'a'; System.out.println(a); ...

Metaverse 278

HDMI协议介绍(二)--DataIsland Packets

前文简单介绍了HDMI传输的三个周期:控制周期、DataIsland周期和Video周期。DataIsland传输音频和辅助数据,这些数据以Packet的形式传输。本文简单介绍DataIsland Packet。

SlamDunk的博客 5676

【免费】最新区块链钱包和私钥的助记词碰撞器,bybit使用python开发

【免费】最新助记词钱包碰撞器,全链全网络,一周左右就有,稳定高效。

weixin_48529185的博客 1万+

Java:StringBuffer

StringBuffer的特点: 1、线程安全:不安全,存在同步操作同一数据的行为,效率高。安全的时候,没有同步操作,效率低。 2、StringBuffer是一个可变序列。 3、StringBuffer又被称为字符缓冲区,把它当成一个字符串去操作,只不过它与string相比是可以修改内容的。 4、在任何时间点,它包含着一些特定的字符序列,但是可以通过某些字符序列的长度和内容。 StringBuffer与String的区别: 1、StringBuffer的内容和长度都是可以改变的,String却不

qq_63531507的博客 9863

RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程

YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。

m0_64661770的博客 545

【Java 基础篇】Java StringBuffer详解:更高效的字符串处理

是Java中的一个类,用于处理可变的字符串。可变字符串意味着我们可以对字符串进行添加、删除、替换等操作,而不会创建新的字符串对象,从而提高了字符串操作的效率。与String不同,是可变的,这意味着我们可以修改它的内容,而不会导致额外的内存分配。这对于需要频繁修改字符串的情况非常有用,比如在循环中构建字符串、拼接字符串等。是Java中用于处理可变字符串的重要类。它允许我们执行添加、插入、删除、替换和反转等操作,而不会导致性能下降。使用可以提高字符串操作的效率,特别是在需要频繁修改字符串内容的情况下。

繁依Fanyi的博客 1270

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5573

修改yolov8使支持单通道图像输入

默认支持BGR三通道图像输入,但是在很多工业场景下,存在很多灰度图像的场景,因此对yolov8代码做一些修改以支持单通道图像输入,满足项目实际需求。训练时,只需要在 data 的 yaml 文件中,添加 ch=1 即可。

mingo_敏 5779

Java基础笔记(一)---变量

Java基础笔记(一)---变量与字符串变量的基本类型(1)整型(2)字符型(3)浮点型(4)布尔型(5)String类型数字与字符串(1)封装类(2)数字与字符串相互转换(3)字符串格式化输出String的源码和String的众多算法还需要继续补充学习 变量的基本类型 变量命名只能使用字母 数字 $ _ 变量第一个字符 只能使用 字母 $ _,不能使用数字开头 声明在方法里的变量叫做局部变量 ...

weixin_44823875的博客 535

【华为OD机试真题】7、字符串筛选排序 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母(k>=1) 输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果有重复字母则输出字母的最小位置索引

KJ.JK 2267

SringBuffer的方法

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不

qq_39843374的博客 381

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

String,Sringbuffer , Stringbuilder的区别

java.lang.String ---String字符串常量 在java中字符串属于对象,String类用来创建和操作字符串(它底层被final修饰的类)。但是String的值是不可变的,每次String的操作都会生成新的String对象,这样效率低下还浪费有限的内存空间。 String简单总结 ①String不可变的字符序列 ②new的对象,一定是创建了对象,在堆中开辟空间。 ③直接...

曰业而安的博客 368

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SringBuffer的使用

StringBuffer也是字符串,与String不同的是StringBuffer对象创建完之后可以修改内容。有如下构造函数:n         public StringBuffer(int);n         public StringBuffer(String);n         public StringBuffer();第一种构造函数是创建指定大小的字符串,第

z280298909的专栏 1113

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SringBuffer与String的区别

SringBuffer与String的区别       作为Java中最为基础的部分,在Java的学习过程中,就一定会学习到字符串,其中String类作为字符串。并且在Java所有的程序中是使用字符串都是使用String类去实现。  两者存在一定的通性,都是可以储存和操作字符串,即包含多个字符的字符串数据。  但是StringBuffer与Sting的区别在哪里?  下面将讲述Sting与Strin

zhuoshengda的博客 6342

String,SringBuffer和 StringBuilder的区别

1 简单介绍    简要的说,String类型和StringBuffer类型的主要性能区别其实在于 String 是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的 String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用 String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的GC

单向街的夏天 1826

Java SringBuffer和StringBuilder的toString效率

上文介绍了SringBuffer,StringBuilder和String在拼接字符串时候的效率对比。可以看出效率StringBuilder > StringBuffer > String。但是我们在使用的过程中,最后都会把SringBuffer和StringBuilder转成String进行使用。它们两个都有toString方法可以调用,那么它们转成String的效率也是 Stri...

guangtouwj的专栏 844

SringBuffer和StringBuilder源码详解

一、继承关系图 CharSequence接口介绍过了,本次就不在介绍了 二、Appendable接口 结构图如下 Appendable append(CharSequence csq) throws IOException; 将指定的字符序列附加到此 Appendable。 注意要保证线程安全要子类自行去实现。 Appendable append(CharSequence csq, int start, int end) throws IOException; 将指定字符序列从start开始,到en

weixin_45841729的博客 517

【Java学习笔记】SringBuffer类(重点)

【Java学习笔记】SringBuffer类(重点)

在csdn分享更多技术知识,相互交流 596

String SringBuffer StringBuilder区别

  最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下   1.三者在执行速度方面的比较:Str...

゛Never give up~ 188

SringBuffer类

StringBuffer类与String有许多的相似之处,但是其内部的实现却有很大的差别。StringBuffer类实际上是封装的一个字符数组,同时提供了对这个字符数组的相关操作。public class TestStringBuffer { public static void main(String[] args) { String a = "Java"; ...

星辰_大海的博客 251

15、String类(SringBuffer 类、 StringBuilder 类)

一、String的特性 1、String是一个final类,代表不可变的字符序列.不可被继承。 2、字符串是一个常量,使用“ ”来表示, 他们的值在创建之后不能更改。 3、String实现了Serializable接口,表示字符串是支持序列化的 实现了Comparable接口,表示字符串可以比较大小 4、String 内部定义了final char[] value 数组用于存储字符串数据 5、String代表不可变的字符字符序列。简称:不可变性。体现: 当字符串重新赋值时,需要重新指

AlexAuthor7的博客 394

Java 2020.9.13 回顾Scanner类,SringBuffer类

Scanner类 在回顾时发现 hasNext 在Scanner类中 常利用public boolea hasNext(pettern pet)来判断,在正则表达式中经常用到 在Scanner类中,无专门的日期格式输入,需要自己手动转换 StringBuffer类 比较String类,String的内容一旦声明不能改变,如果要改变的肯定是String的引用地址,能用“+”进行字符串的连接 StringBuffer类,适用于一个字符串经常被改变的情况 只能使用append()方法进行字符串连接 与String

Hello World 138
上一篇: Java基础:第二十一讲 数字的格式化
下一篇: Java Web基础:第十二讲 form元素的使用
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值