StringBuffer类(接Java的常用类)

StringBuffer类常用方法:

方法声明功能描述
StringBuffer append(char c)添加字符到 StringBuffer对象中末尾
StringBuffer insert(int offset,String str)在 StringBuffer对象中的offest位置插入字符串str
StringBuffer deleteCharAt(int index)移除 StringBuffer对象中指定位置的字符
StringBuffer delete(int start,int end)删除 StringBuffer对象中指定范围的字符或字符串
StringBuffer replace(int start,int end,String s)将 StringBuffer对象中指定范围的字符或字符串用新的字符串s进行替换
viod setCharAt(int index,char ch)修改指定位置index处的字符串对象
String toString()返回 StringBuffer缓冲区中的字符串对象
StringBuffer reverse()将此 StringBuffer对象用其反转形势取代

案例:

package ser;
public class Ch01 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("1.添加----------------");
		add();
		System.out.println("2.修改----------------");
		update();
		System.out.println("3.删除----------------");
		delete();
	}
    //删除
	private static void delete() {
		StringBuffer sb = new StringBuffer("ABCDEFG");
		sb.delete(3, 7);  //指定范围删除
		System.out.println("删除指定位置结果:"+sb);
		sb.deleteCharAt(2);  //指定位置删除
		System.out.println("删除指定位置结果:"+sb);
		sb.delete(0, sb.length()); //清除缓冲区
		System.out.println("清除缓冲区结果:"+sb);
	}
    //修改
	private static void update() {
		StringBuffer sb = new StringBuffer("ABAAA");
		sb.setCharAt(2, 'C');  //修改指定位置字符
		System.out.println("修改指定位置字符结果:"+sb);
		sb.replace(3, 5, "DE"); //替换指定位置字符串或字符
		System.out.println("替换指定位置字符(串)结果是:"+sb);
		System.out.println("字符串反转结果是:"+sb.reverse());	
	}
	//添加
	private static void add() {
		StringBuffer sb = new StringBuffer();//定义一个字符串缓冲区
		sb.append("ABC");  //添加字符串
		System.out.println("append添加结果:"+sb);
		sb.insert(3, "DE");//在指定位置插入字符串
		System.out.println("insert添加结果:"+sb);	
	}
}

运行结果:
在这里插入图片描述其中append()和insert()方法是最常用的,并且这两个方法有很多重载形式,不同的是,append()方法始终将这些字符添加到缓冲区的末尾,而insert()方法则可以在指定的位置添加字符。另外,StringBuffer对象的delete()方法用于删除指定位置的字符,包含其实索引,不包含结束索引,setCharAt()和replace()方法用以替换指定位置的字符。

**

StringBuffer类和String类有很多相似之处,初学者在使用时很容易混淆,接下来针对这两个类进行对比,简单归纳一下两者的不同,具体如下:

**
1.String类定义的字符串是常亮,一旦创建后,内容和长度都是无法改变的。StringBuffer表示字符容器,其内容和长度可以随时修改,在操作字符串时,如果该字符仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删改查,则使用StringBuffer类。

2.String类重写了Object类的equals()方法,而StringBuffer类没有重写Object类的equals()方法。具体示例如下:

 String s1 = new String("abc");
	String s2 = new String("abc");
	System.out.println(s1.equals(s2));  //打印结果为true
	StringBuffer a1 = new StringBuffer("abc");
	StringBuffer a2 = new StringBuffer("abc");
	System.out.println(a1.equals(a2)); // 打印结果为false

3.String类对象可以用操作符+进行连接,而StringBuffer 对象之间不能,具体事例如下:
在这里插入图片描述
扩展(StringBuilder):
StringBuilder 类同样也可以操作字符串,且功能与StringBuffer相似,两个类所提供的方法也进本相同。二者不同的是:StringBuffer是线程安全,而StringBuilder没有实现线程安全功能,所以性能略高。通常情况下,如果创建一个内容可变的字符串对象,应该优先考虑StringBuilder类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值