美文网首页
java笔记--常用对象Api(StringBuffer和Str

java笔记--常用对象Api(StringBuffer和Str

作者: 吃饱喝足搬代码丶 | 来源:发表于2018-08-09 23:41 被阅读0次

StringBuffer:就是字符串缓冲区。
用于存储数据的容器。
特点:
1.长度可变
2.可存储不同类型数据
3.最终要转成字符串进行使用
4.可以对字符串进行修改

具备的功能:
1.添加:
StringBuffer append(data);
StringBuffer insert(index,data);
2.删除:
StringBuffer delete(start,end);包含头不包含尾
StringBuffer deleteCharAt(int index);删除指定位置的元素
3.查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4.修改:
StringBffer replace(start,end,string);
void setCharAt(index,char);

public class StringBufferDemo {

    public static void main(String[] args) {

        bufferMethodDemo();
        bufferMethodDemo_1();
        bufferMethodDemo_2();
    }

    private static void bufferMethodDemo() {
//      创建缓冲区对象
        StringBuffer sb=new StringBuffer();
        
        sb.append(4).append(false);
        sb.insert(1, "haha");
        
        System.out.println(sb);
        
    }

    private static void bufferMethodDemo_1() {
        StringBuffer sb=new StringBuffer("abce");
        
        sb.append("xixi");
        sb.insert(2, "qq");
        
        System.out.println(sb.toString());
        
    }

    public static void bufferMethodDemo_2() {
        StringBuffer sb=new StringBuffer("abce");
    /*  
        sb.delete(1, 3);ae
        
//      清除缓冲区
        sb.delete(0, sb.length());
        sb=new StringBuffer();
        
        sb.replace(1, 3, "nba");
        sb.setCharAt(2, 'q');
        
        sb.setLength(10);
        
        System.out.println("sb:"+sb);
        System.out.println("len:"+sb.length());
    */  
        System.out.println(sb.reverse());//反着来  
    }
}
运行:
StringBuffer是线程同步的,是安全的。
public class StringBuilder {

    object lock;
    public   StirngBuffer append(int x)
    {
        synchronized(lock)
        {
        }
    }
    
    
    public StringBuffer delete(int start,int end)
    {
        synchronized(lock)
        {
        }
    }
}

JDK5以后出现了功能与StringBuffer一模一样的对象,就是StringBuilder。

不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的,通常用于单线程。它的出现提高了效率(在单线程中)

jdk升级
1.简化书写
2.提高效率
3.增加安全性

public class StringBuilderTest {

    public static void main(String[] args) {

        int[] arr={3,1,5,3,8};
        String s=arrayToSring_2(arr);
        
        System.out.println(s);

    }
public static String arrayToSring_2(int[] arr) {
        
    StringBuilder sb=new StringBuilder();
    sb.append("[");
    for(int i=0;i<arr.length;i++){
        if(i!=arr.length-1)
            sb.append(arr[i]+", ");
        else
            sb.append(arr[i]+"]");
    }
    return sb.toString();
}

    /*  
    将一个数组变成字符串
*/
    public static String arrayToSring(int[] arr) {
        
        String str="[";
        for(int i=0;i<arr.length;i++){
            if(i!=arr.length-1)
                str+=arr[i]+", ";
            else
                str+=arr[i]+"]";
        }
        return str;
    }
}
运行:

相关文章

网友评论

      本文标题:java笔记--常用对象Api(StringBuffer和Str

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