美文网首页
day13-10/11/12-StringBuffer(常见功能

day13-10/11/12-StringBuffer(常见功能

作者: 姗婷 | 来源:发表于2020-06-09 09:14 被阅读0次

    StringBuffer是字符缓冲区。是一个容器。
    特点:
    1.而且长度是可变化的
    2,可以直接操作多个数据类型。
    3.最终通过toString方法变成字符串
    C:create U:update R:read D:delete
    1,存储
    StringBuffer append():将制定数据作为参数添加到已有数据结尾处
    StringBuffer insert():可以将数据插入到制定index位置

    2.删除
    StringBuffer delete(start,end):删除缓冲区的数据,包含start,不包含end
    StringBuffer deleteCharAt(index):删除指定位置的字符
    3.获取
    char charAt();
    int indexOf(String str);
    int lastIndexOf(String str);
    int length();
    String substring(int start,int end)
    4.修改
    StringBuffer replace(int start, int end, String str);
    void setCharAt(int index,char ch);
    5.反转
    StringBuffer reverse();
    6. 将缓冲区中指定数据存储到指定字符数组中
    getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

    7.JDk1.5版本之后出现了StringBuilder
    StringBuffer是线程同步。安全。判断锁
    StringBuilder是线程不同步。不安全。不需要判断锁。

    以后开发建议使用StringBuider,就是在创建对象的时候,其他方法都不变
    StringBuilder sb = new StringBuilder("abcdef");

    升级三个因素:1.提高效率、简化书写、提高安全性

    class StringBufferDemo
    {
        public static void main(String args[])
        {
            method_6();
        }
        public static void method_6()
        {
            StringBuffer sb = new StringBuffer("abced");
            char[] chs = new char[6];
            sb.getChars(1,4,chs,2);//将bce存储到字符数组,且从数组2角标开始存
            for(int x=0;x<chs.length;x++)
            {
                sop("ch["+x+"]="+chs[x]+";");
            }
        }
        public static void method_update()
        {
            StringBuffer sb = new StringBuffer("abcde");
            //sb.replace(2,4,"java");//abjavae
            sb.setCharAt(2,'k');//abkde
            sop(sb.toString());
        }
        
        public static void method_del()
        {
            StringBuffer sb = new StringBuffer("abcde");
            //sb.delete(1,3);//bc被删除了,结果是ade
            //清空缓冲区
            //sb.delete(0,sb.length());
            sb.deleteCharAt(2);//删除c
            sop(sb.toString());     
        }
        
        
        
        public static void method_add()
        {
            //StringBuffer sb = new StringBuffer();
            //sb.append("abc").append(tr);//StringBuffer sb1  = sb.append(34);
            //sop("sb==sb1:"+(sb==sb1));//结果是true
            //sb.insert(1,"qq");//结果是aqqbcture3,1第一个q的角标
            //sop(sb.toString);//结果是abcture34
            
            //sop(sb1.toString);
        }
        
        public static void sop(String str)
        {
            System.out.println(str);
        }
    }

    相关文章

      网友评论

          本文标题:day13-10/11/12-StringBuffer(常见功能

          本文链接:https://www.haomeiwen.com/subject/oicjtktx.html