1、StringBffer的概述
StringBuffer字符串缓冲区,相当于一个容器,不同于String,StringBuffer对象是可变的,详细可以根据StringBuffer类的源码实现。
2、构造方法
public StringBuffer(){}
//无参构造,最常用
public String(int size){}
//指定容量的字符串缓冲区对象,默认开始时16字节,
public String(String str){}
//指定字符串内容的字符串缓冲区对象
3、StringBuffer常见功能
- 添加操作
public StringBuffer append(String str)
可对任何的字符串缓冲区内容拼接,并返回字符串本身
StringBuffer sb = new StringBuffer();
StringBuffer sb2 = sb.append("hello");
//相当于给这个sb2对象追加了数据,最终返回的是追加了数据的本身
//这里返回的是本身,并没有重新开一个空间,这就是和String的不同,此时就不会有空间的浪费
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println(sb==sb2);//true
以上等效于:
sb.append("hello");
System.out.println("sb:"+sb);
一步一步的添加数据
sb.append("hello!");
sb.append(12);
sb.append(34.54);
链式编程
sb.append("hello").append(12).append(34.54);
-
删除操作
public StringBuffer deleteCharAt(int index)
//删除索引位置的
public StringBuffer deleteCharAt(int start,int end)
//开始和结束的位置是左闭右开 -
替换操作
public StringBuffer replace(int start,int end,String str)
//从开始到结束用str替换 -
反转操作
public StringBuffer reverse()
-
截取操作(注意这个返回值类型)
public String substring(int start)
public String substring(int start,int end)
eg:
//创建字符串缓冲区对象
StringBuffer sb = new StringBuffer();
//添加元素
sb.append(hello).append(world).append(java);
//截取功能
public s = sb.substring(5);
System.out.println("s:"+s);//worldjava
System.out.println("sb:"+sb);//helloworldjava
4、字符串和SringBuffer和数组的相互转换
- StringBuffer转String
1>通过构造方法
StringBuffer sb = new StringBuffer("heima");
String s1 = new String(sb);
2>调用toString将StringBuffer对象转换成String对象
StringBuffer sb = new StringBuffer(“Hello”);
String sb = stringBuffer.toString();
- String转StringBuffer
1>通过构造方法
String str = "hello";
StringBuffer sb = new StringBuffer(str);
2>调用append方法
String str = "hello";
StringBuffer sb = new StringBuffer();
sb.append(str);
- StringBuffer转数组
java中不支持直接从SringBuffer转换为字符数组,而是将StringBuffer转换为String,然后由String调用 toCharArray(),转换成字符数组。
StringBuffer sb = new StringBuffer("hello");
String str = StringBuffer.toString();
char[] arr = str.toCharArray()
- 数组转换成StringBuffer
仍然需要先将字符数组转换成String,然后再由String转换成StringBuffer
char[] arr = {'a','b','c'};
String str = new String();
str.valueOf(char[] arr);
StringBuffer sb = new StringBuffer();
sb.append(str);