StringBuffer和StringBuilder

StringBuffer

  1. buffer是缓冲区的意思
  2. String字符串一旦初始化,不能被改变。
  3. StringBuffer可以用于对字符串进行修改。
  4. StringBuffer是字符串缓冲区,是一个容器。
  5. 特点:1、长度可以变化。2、可以直接操作多个数据类型。3、最终会通过toString方法变成字符串。
  6. 容器所具备的功能:增删改查CURD(create,update,read,delete)

StringBuffer常用方法

  1. 存储

    1. StringBuffer append();将指定数据作为参数添加到已有数据结尾处,返回原StringBuffer对象。
    public class StringBufferDemo{
        public static void method_append(){
            StringBuffer sb=new StringBuffer();
            StringBuffer sb1=sb.append(34);
            System.out.println("sb==sb1:"+(sb==sb1));//sb==sb1:true,说明是同一个对象
            System.out.println(sb.toString());//34
            System.out.println(sb.toString());//34
            //所以可以像这样写代码
            sb.append("abc").append(true).append(34);
            //abctrue34,append在末尾处添加
        }
    }
    1. StringBuffer insert(index,数据);将指定数据作为参数添加到已有数据指定index位置,返回原StringBuffer对象。
      public static void method_insert(){
          StringBuffer sb=new StringBuffer();
          sb.append("abc").append(true).append(34);
          sb.insert(1,"qq");
          System.out.println(sb.toString());
          //aqqbctrue34
      }
  2. 删除

    1. StringBuffer delete(start,end):删除缓冲区中的数据。
    2. StringBuffer deleteCharAt(index):删除指定位置的字符。
    public static void method_delete(){
        StringBuffer sb=new StringBuffer("abcde");
        //sb.delete(1,3);//ade
        //清空缓冲区
        //sb.delete(0,sb.length());
        sb.deleteCharAt(2);//abde
    }
  3. 获取
    1. char charAt(int index):获取指定位置字符
    2. int indexof(String str):指定字符串第一次出现的位置
    3. int lastIndexOf(String str):指定字符串最后一次出现的位置
    4. int length():容器长度
    5. String substring(int start,int end):截取start到end位置的子串,返回类型为String
  4. 修改

    1. StringBuffer replace(int start,int end,String str):替换从start到end的字符串为str
    2. void setCharAt(int index,char ch):替换指定位置字符为ch,没有返回值
    public static void method_update(){
        StringBuffer sb=new StringBuffer("abcde");
        //sb.replace(1,4,"java");//ajavae
        sb.setCharAt(2,'k');//abkde
    }
  5. 反转
    StringBuffer reverse()

StringBuilder

  1. 在JDK1.5之后出现了StringBuilder,为了提高效率。
  2. StringBuffer是线程同步的,效率低。
  3. StringBuilder是线程不同步的,效率高。

版权声明:本文为qq_36084640原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。