StringBuilder/Stringbuffer:append()增、replace()改、delete()删、insert()插,String 和 StringBuffer 的区别

-StringBuilder

  • java.lang.StringBuilder

  • String的优化措施仅照顾重用性,因此频繁修改字符串会带来内存开销大,运行效率差的结果。对此,java提供了一个专门用于修改字符串的API

  • 其内部维护一个可变的char数组,所有的修改都是在这个数组中进行的因此开销小,性能好,并且其提供了便于修改字符串的一系列方法,包括了:增,删,改,插等基本操作

    append()增
public class StringBuilderDemo {
	public static void main(String[] args) {
		String str = "好好学习java";
		StringBuilder builder = new StringBuilder(str);		
		builder.append(",为了找个好工作");
		System.out.println(str);  //好好学习java
		// 获取StringBulider内部的字符串
		str = builder.toString();
		System.out.println(str);  //好好学习java,为了找个好工作
	}
}
  • append(参数)
    • 参数:增加的内容
replace()改
public class StringBuilderDemo {
	public static void main(String[] args) {		
		String str = "好好学习java,为了找个好工作";
		StringBuilder builder = new StringBuilder(str);	
		builder.replace(9, 16, "就是为了改变世界");
		System.out.println(builder.toString());  //好好学习java,就是为了改变世界
    }
}
  • builder.replace(参数1.参数2,参数3)
    • 参数1:修改的起始位置
    • 参数2:修改的末尾位置
    • 参数3:修改后的内容
    • 参数1、参数2,含头不含尾
delete()删
public class StringBuilderDemo {
	public static void main(String[] args) {
        String str = "好好学习java,为了找个好工作";
        StringBuilder builder = new StringBuilder(str);	
        builder.delete(0, 8);
		System.out.println(builder.toString());  //,为了找个好工作
    }
}
  • delete(参数1,参数2)
    • 参数1:删除的起始位置
    • 参数2:删除的末尾位置
    • 参数1、参数2,含头不含尾
insert()插
public class StringBuilderDemo {
	public static void main(String[] args) {
        String str = "好好学习java,为了找个好工作";
        StringBuilder builder = new StringBuilder(str);	
        builder.insert(0, "活着");
		System.out.println(builder.toString());  //活着好好学习java,就是为了改变世界
    }
}
  • insert(参数1,参数2)
    • 参数1:插入的起始位置
    • 参数2:插入的内容

-Stringbuffer

Stringbuffer 和 Stringbuilder是功能一样

区别:

只不过StringBuilde用于多个线程是不安全的,StringBuffer用于多个线程是安全


String 和 StringBuffer 的区别
    由于String类是不可变的,当他要增加或删除字符串时,会重新创建一个字符串,会对存储空间
造成浪费,而 StringBuffer是可变的,所以对字符串进行增删改时,可以用 StringBuffer
  • String 实现了 equals 方法,new String(“abc”).equals(newString(“abc”)的结果为 true
  • StringBuffer 没有实现 equals ,new StringBuffer(“abc”).equals(newStringBuffer(“abc”)
    的结果为 false。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值