StringBuffer的概述

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);
发布了52 篇原创文章 · 获赞 6 · 访问量 1462

猜你喜欢

转载自blog.csdn.net/qq_40488936/article/details/103540623
今日推荐