StringBuffer类的方法使用说明

字符串缓冲区,String类型一旦定义就不会改变了,随之而来的就是浪费内存的问题
所以API提供了一个新的类StringBuffer类全程字符串缓冲区
java.lang.Object ->java.lang.StringBuffer 它也是Object的一个子类,所有的类都是Object的子类
StringBuffer是一个线程安全的可变的字符序列
线程安全?就是很安全吧,可变的字符序列?这个数组能改变长度?String类不是定义之后就不可以改变吗?
StringBUffer的存在就是为了提高字符串的操作效率
String这个数组比较消耗内存,只要你有一个""双引号它就会给你开启一块内存
而StringBuffer则解决了这个缺点,它始终只有一个数组,在把原有的复制之后在给你拼接
所以StringBuffer内部是采用可变的数组的方式实现的,这个数组没有final
在所以这个StringBuffer比String这类要节省空间内存
StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
初始容量16个字符


StringBuffer类的方法的学习:
第一个:append 作用:将任意类型的数据添加到缓冲区中
这个缓冲区就是一个数组的容器
StringBuffer buffer = new StringBuffer();
//这是一个buffer调用链 因为它的最后返回结果就是一个buffer
//最后的结果不在是基本数据类型,而是形成了一个字符串

buffer.append(“liudao”).append(666).append(false);


第二个StringBuffer方法

StringBuffer delete(int start, int end) 删除缓冲区的字符
buffer.append(“liuaaadao”);
buffer.delete(3, 6);
结果:liudao
注意开始的索引是包括的,结束索引是不包含的
buffer.append(“liuaaadao”);
//把全部buffer缓冲区的数据删除
buffer.delete(0, buffer.length());


第三个StringBuffer方法在指定位置插入字符
StringBuffer insert(int offset, String str) 将字符串插入此字符序列中。
StringBuffer buffer = new StringBuffer();
buffer.append(“liuaaadao”);
//buffer.delete(0,2);
buffer.insert(6, “bcd”);
System.out.println(buffer);
insert是在指定索引前面追加数据,而append是只能在后面追加数据
写那个索引就是在那个索引位置


第四个方法
StringBuffer replace(int start, int end, String str)
取代指定的字符串
StringBuffer buffer = new StringBuffer();
buffer.append(“liuaaadao”);
//buffer.delete(0,2);
//buffer.insert(3, 9.5);
buffer.replace(3, 6, “bbb”);
System.out.println(buffer);
将指定范围的字符换成新的字符串


第五个方法
StringBuffer reverse() 将此字符序列用其反转形式取代。
StringBuffer buffer = new StringBuffer();
buffer.append(“liuaaadao”);
//buffer.delete(0,2);
//buffer.insert(3, 9.5);
//buffer.replace(3, 6, “bbb”);
buffer.reverse();
System.out.println(buffer);
结果oadaaauil


第六个方法
String toString() 返回此序列中数据的字符串表示形式。
将缓冲区的字符转成字符串
//大概就是将可变的StringBuffer缓冲区对象变成了不可变的String类型的对象
StringBuffer buffer = new StringBuffer();
buffer.append(“liuaaadao”);
buffer.append(123666);
//buffer.delete(0,2);
//buffer.insert(3, 9.5);
//buffer.replace(3, 6, “bbb”);
//buffer.reverse();
buffer.toString();
System.out.println(buffer);
你在stringBuffer里面append追加进去的东西都是可变的字符串,但是你调用了toString就会变成不可变的String类型对象

猜你喜欢

转载自blog.csdn.net/qq_38054319/article/details/86592762
今日推荐