美文网首页
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