53--StringBuffer与StringBuilder

String类一旦声明则不可改变,如果要改变,则改变的肯定是String的引用地址,如果一个字符串要被经常的改变,此时就必须使用StringBuffer类,在String类中可以通过“+”进行字符串的连接,但是StringBuffer中却只能使用append()方法进行字符串的连接。

StringBuffer与StringBuilder常用的方法在这里插入图片描述

在这里插入图片描述

实例操作举例

实例操作一:字符串的连接操作

public class StringBufferAppendDemo {
	public static void main(String[] args) {
		StringBuffer bf=new StringBuffer();
		bf.append("HELLO");
		bf.append("Word").append("!!!");
		bf.append("\n");
		bf.append("数字=").append(1).append("\n");
		bf.append("字符=").append('c').append("\n");
		bf.append("布尔=").append(true);
		System.out.println(bf);
	}
}

以上代码中bf.append(“数字=”).append(1).append("\n");实际上就是一种代码链的操作形式。
实例操作二:在任意位置为StringBuffer添加内容
public class StringBufferInsertDemo {
public static void main(String[] args) {
StringBuffer bf= new StringBuffer();
bf.append(“World”);
bf.insert(0, “Hello”);//在所有内容之前添加
System.out.println(bf);
bf.insert(bf.length(), “北大青鸟”);//在最后添加
System.out.println(bf);
}
}

实例操作三:字符串的反转操作

public class StringBufferReverseDemo {
	public static void main(String[] args) {
		StringBuffer bf = new StringBuffer();
		bf.append("Hello");
		bf.reverse();//反转操作
		System.out.println(bf);
	}
}

实例操作:替换指定范围的内容

public class StringBufferReplaceDemo {
	public static void main(String[] args) {
		StringBuffer bf = new StringBuffer();
		bf.append("Hello ").append("World!!");
		System.out.println("替换之前:"+bf);
		bf.replace(6, 11, "蒋帅");//替换操作
		System.out.println("替换之后:"+bf);
	}
}

在String中如果要进行替换,则使用的是replaceAll()方法,而在StringBuffer中使用的是replace()方法,使用时要注意。
实例操作五:字符串截取

public class StringBufferSubStringDemo {
	public static void main(String[] args) {
		StringBuffer bf = new StringBuffer();
		bf.append("Hello").append(" World!!");
		String str = bf.substring(5, 13);//指定截取范围,并把内容转化为String类型
		System.out.println(str);
	}
}	

实例操作六:删除指定范围的字符串

public class StringBufferDeleteDemo {
	public static void main(String[] args) {
		StringBuffer bf = new StringBuffer();
		bf.append("Hello ").append("World!!");
		String str=bf.delete(6, 11).toString();//删除指定的范围的字符串
		System.out.println(str);
	}
}

实例操作七:查找指定的内容是否存在

public class StringBufferIndexOfDemo {

	public static void main(String[] args) {
		StringBuffer bf = new StringBuffer();
		bf.append("Hello ").append("World!!");
		if(bf.indexOf("Hell")==-1){//判断指定的内容是否存在,不存在返回-1
			System.out.println("没有找到指定的内容");
		}else{
			System.out.println("可以查到指定的内容");
		}
	}
}

String、StringBuffer与StringBuilder区别:

String: String是一个final类,代表不可变的字符序列,String对象的字符内容是存储在一个字符数组value[]中的。
StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储,初始化默认数组长度为16
StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储.
对比String、StringBuffer、StringBuilder三者的效率: 从高到低排列:StringBuilder > StringBuffer > String

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值