关于StringBuffer与StringBuilder的总结

本文对比了StringBuffer与StringBuilder的特点,介绍了它们相较于String类的优势,并提供了常见操作的代码示例,如追加、反转、删除等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String类创建初始化后对于其的修改都要创建一个新的对象,但是StringBuffer与StringBuilder就解决了这个问题。

对于StringBuffer与StringBuilder的区别在于StringBuilder 的方法不是线程安全的(不能同步访问),但是StringBuilder的速度快于StringBuffer,所以在不要求线程安全的情况下优先使用StringBuilder。

StringBuffer的很多方法都与String类差不多,下面着重总结一下几个常用的方法:

s.append(要加的东西,int,char,string ...)将指定的字符串追加到此字符序列。
s.reverse()反转字符串
s.delete(int start, int end)删除【start,end)间的字符
s.insert(int index, int i)在index位置插入字符
s.replace(int start, int end, String str)将【start,end)间的字符替换成str

下面是使用举例:

package test;

public class Buffer {

	public static void main(String[] args) {
		StringBuffer s1=new StringBuffer("Hello ");
		
		StringBuffer s3=new StringBuffer("123456789");
		s1.append("the ");
		s1.append("world! ");
		StringBuffer s6=new StringBuffer(s1);
		System.out.println(s1);
		//char []s2= "How are you ? ";错误
		String s2="How are you ? ";
		s1.append(s2);
		System.out.println(s1);
		s1.reverse();//倒序输出
		System.out.println(s1);
		s3.insert(4,666666);//在此序号的位置插入
		System.out.println(s3);
		s3.deleteCharAt(2);//序号从零开始
		System.out.println(s3);
		s3.delete(2, 6);//从第二号开始到第6号前一位截止
		System.out.println(s3);
		s6.replace(0,3,"H");//从零到2也是左闭右开区间,相比于insert方法这个不管后面替换成的字符串有多长都把区间内的字符串替换掉!
		System.out.println(s6);
		s6.toString();
		System.out.println(s6);
	}

}

输出结果为:

Hello the world! 
Hello the world! How are you ? 
 ? uoy era woH !dlrow eht olleH
123466666656789
12466666656789
1266656789
Hlo the world! 
Hlo the world! 
注意:这里给定一个范围都是指左闭右开区间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值