StringBuffer(史上最详细)

StringBuffer是String的增强类

1.StringBuffer的直接父类是AbstractStringBuilder

2.StringBuffer实现了Serializable 即StringBuffer的对象可以串行化

3.在父类中 AbstractStringBuilder 有属性 char[] value,不是final

在该value数组存放字符串内容,引出存放在堆中的

4.StringBuffer 是一个final类 不能被继承

5.StringBuffer是存放在 char[] value ,所有的变化 不用每次创建新对象,更换地址所以效率高于String

在这里插入图片描述

StringBuffer 构造器默认为初始化16个字符

StringBuffer中的常用方 法

添加

首先我们需要创建一个StringBuffer对象

可以有初始值

添加语法:StringBuffer对象.append(插入的string值)

StringBuffer string = new StringBuffer("hello,")
string.append("world")
//输出为  hello,world
//添加多个可以直接 append.append.append
string.append("good").append("true")
//输出  hello,worldgoodtrue

删除

删除是删除开始索引到结束索引位置的 注意不包含结束索引值

语法:StringBuffer对象.delete(开始索引,结束索引)

string.delete(1,4)
//输出为 ho,worldgoodtrue    

在hello中的o是第四个索引位置 并没有删除这里可以看出删除并不包含结束索引值 这是一个典型的左闭右开原则

替换

替换也是一个典型的左闭右开原则

语法: StringBuffer对象.replace(开始索引,结束索引,替换掉的新值)

string.replace(0,3,"java")
//输出结果  javaworldgoodtrue

插入

插入可以在指定位置索引插入内容,比如说有一个String 内容为abcd 但是我们想变成aocd 是不是很麻烦这时候发现还是StringBuffer类好用

语法:StringBuffer对象.inert(要插入的索引位置,插入的值)

string.inert(0,"hello")
//结果为hellojavaworldgoodtrue

上面我们在索引为0的位置插入了hello但是小伙伴们会发现j是索引为0的位置并没有被替换掉这是因为字符在插入时会自动向后移并不会消失

长度

StringBuffer对象.length()

返回一个StringBuffer对象内字符长度

//string在上面结果为hellojavaworldgoodtrue
string.length()
//打印结果为22

StringBuffer练习题

查看下列代码输出什么?为什么?

String a = null
StringBuffer string = new StringBuffer()
System.out.println(string.length())    

第一个创建了一个String对象 赋值了一个null 肯定是没问题

第二个创建了一个StringBuffer对象也是没问题的,

第三个就需要想一想StringBuffer是否支持空值面对空值StringBuffer是如何去处理的

其实底层调用的是一个AbstractStringBuilder的appendNull()方法 如果为空会赋值 null字符

也就是说输出为4

欢迎评论一起学习,如果觉得本文章对你有帮助,一键三连支持一下

在这里插入图片描述

  • 36
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fan Wang&YuanyuanLuo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值