Java中的StringBuffer类

String类是final类,而且String类不提供修改字符序列的方法,也就是说,String对象不能修改、删除或替换字符序列中的某个字符,即String对象一旦创建,实体就不可以再发生变化,我们称这样的对象是不可变对象。
而StringBuffer类,能够创建可修改的字符串序列,即该类的对象的内存的实体空间可以自动改变大小,便于存放一个可变的字符串。

一、StringBuffer类的构造方法

StringBuffer类有三个构造方法,分别是

StringBuffer();
StringBuffer(int size);
StringBuffer(String s);

(1)构造方法StringBuffer()创建一个StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增加,以便存放所增加的字符。StringBuffer对象可以通过方法length()获取实体中存放的字符序列的长度,通过方法capacity()获取当前实体的实际容量。
(2)构造方法StringBuffer(int size)创建一个StringBuffer对象,可以指定分配给该对象的实体的初始容量为参数size指定的字符个数。当该对象的实体存放的字符序列的长度大于size个字符时,实体的容量自动增加,以便存放所增加的字符。
(3)构造方法StringBuffer(String s)创建一个StringBuffer对象,可以指定分配给该对象的实体的初始容量为参数字符串s的长度额外再加16个字符。
具体示例:

StringBuffer str=new StringBuffer();
        str.append("大家好");
System.out.println("str:"+str);//str:大家好
System.out.println("length:"+str.length());//length:3
System.out.println("capacity:"+str.capacity());//capacity:16
        str.append("i am very love java");
System.out.println("str:"+str);//str:大家好i am very love java
System.out.println("length:"+str.length());//length:22
System.out.println("capacity:"+str.capacity());//capacity:34
StringBuffer s=new StringBuffer("hello");
System.out.println("length:"+s.length());//length:5
System.out.println("capacity:"+s.capacity());//capacity:21

二、StringBuffer类的常用方法

1.append()——将其他Java类型(八大数据类型)数据转化为字符串后,再追加到StringBuffer对象中。
2.char charAt(int n)——得到参数n指定的索引位置上的单个字符。n的值必须是正数,并且小于当前对象的字符序列的长度。
3.void setCharAt(int n,char ch)——将当前StringBuffer对象实体中的字符序列的位置n处的字符用参数ch指定的字符替换。n的值必须是正数,并且小于当前对象的字符序列的长度。
4.StringBuffer insert(int index,String str)——StringBuffer对象使用insert方法将参数str指定的字符序列插入参数index指定的位置,并返回当前对象的引用。
5.public StringBuffer reverse()——StringBuffer对象使用reserve方法将该对象实体中的字符序列翻转,并返回当前对象的引用。
6.StringBuffer delete(int startIndex,int endIndex)——delete(int startIndex,int endIndex)从当前StringBuffer对象实体中的字符序列中删除一个子字符序列,并返回当前对象的引用。这里startIndex指定了需删除的第一个字符的下标,而endIndex指定了需删除的最后一个字符下标是endIndex-1,即要删除的子字符序列从startIndex到endIndex-1。deleteCharAt(int index)方法删除当前StringBuffer对象的字符序列中index位置处的一个字符。
7.StringBuffer replace(int startIndex,int endIndex,String str)——replace(int startIndex,int endIndex,String str)方法将当前StringBuffer对象的startIndex到endIndex-1的字符序列替换成参数str指定的字符序列,并返回当前StringBuffer对象的引用。
具体示例:

StringBuffer str=new StringBuffer("0123456789");
str.setCharAt(0,'a');
str.setCharAt(1,'b');
System.out.println(str);//ab23456789
str.insert(2,'**');
System.out.println(str);//ab**23456789
str.delete(6,8);
System.out.println(str);//ab**236789
str.replace(2,4,'@@');
System.out.println(str);//ab@@236789
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaStringBuffer和StringBuilder类是用于字符串操作的可变字符序列类。它们都具有类似的功能,但在某些方面有所不同。StringBuffer是线程安全的,适用于多线程环境下的字符串拼接和修改操作。而StringBuilder是非线程安全的,适用于单线程环境下的字符串操作,它的性能相对较高。 StringBuffer和StringBuilder类都提供了类似的方法,包括创建、追加、插入、删除、替换、反转等操作。可以使用append()方法在字符串末尾追加内容,使用insert()方法在指定位置插入内容,使用delete()方法删除指定位置的字符,使用replace()方法替换指定范围内的字符,使用reverse()方法反转字符串等。此外,它们还支持toString()方法将可变字符序列转换为字符串,以及length()方法获取字符序列的长度等常见操作。 在使用StringBuffer和StringBuilder类时,需要根据实际情况选择合适的类。如果在多线程环境下进行字符串操作,安全性是首要考虑因素,可以使用StringBuffer类。如果在单线程环境下进行字符串操作,并且对性能有较高要求,可以使用StringBuilder类。 总之,JavaStringBuffer和StringBuilder类提供了灵活和高效的字符串操作方法,可以根据需要选择合适的类来处理字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java StringBuffer和StringBuilder](https://blog.csdn.net/sheng0113/article/details/124081818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [面试题java StringBuffer和StringBuilder类常见操作和用法](https://download.csdn.net/download/qq_43797491/87906515)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanbeide

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值