StringBuffer
StringBuffer的定义:StringBuffer是一种字符串缓冲区,类似一种容器,可以对字符串内容进行增删改查操作,而且是可以改变其长度的
StringBuffer的特点:
1.长度是可变的
2.可以直接操作多个数据类型
3.最终会通过toString()方法变成字符串
StringBuffer的常用方法:
1.存储
将指定的数据作为参数,追加到已有数据的末尾:StringBuffer append(String str)
同样也可以在指定的位置添加数据:StringBuffer insert(int offset,String str)
2.删除
将指定区间的数据(包含头不包含尾,即区间为左闭右开):StringBuffer delete(int start,int end)
删除指定位置的字符:StringBuffer deleteCharAt(int index)
3.获取
获取某一位置上的字符:char charAt(int index)
获取指定字符串第一次出现的位置:int indexOf(String str)
获取指定字符串最后一次出现的位置:int lastIndexOf(String str)
获取长度:int length()
截取:String substring(int start)
4.修改
将指定区间内的字符串 修改为 传入的新的字符串 (包含头不包含尾,即区间为左闭右开):
StringBuffer replace(int start,int end,String str)
替换指定位置的字符 : void setCharAt(int index, char ch)
5.反转
将存储的字符串顺序反转:StringBuffer reverse()
StringBuffer与String的区别
两者如何相互转换?
String --> StringBuffer
1.通过构造方法
2.通过append()方法
StringBuffer --> String
1.通过toString()方法
2.通过substring()方法
3.通过String的构造方法
区别:
相同点:两者都是用来操作字符串的
不同点:
1.从生成字符串的角度而言
在拼接多个字符串情况下:StringBuffer 效率 > String效率;
StringBuffer是在原有基础上的追加;
String 每一次拼接 都会创建一个新的字符串
2.值传递和址传递
String类型虽然是引用数据类型,但是在它作为方法的参数传递的时候传的是值,和 基本数据类型/基本数据类型包装类 一样。
StringBuffer作为参数传递的时候 传的是地址