字符串缓冲

一、StringBuffer

1、概念

StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

2、方法

演示:

创建一个字符串缓冲区对象。用于存储数据。
StringBuffer sb = new StringBuffer();
sb.append("haha"); //添加字符串
sb.insert(2, "it");//在指定位置插入
sb.delete(1, 4);//删除
sb.replace(1, 4, "cast");//替换指定范围内的内容
String str = sb.toString();

注意:

append、delete、insert、replace、reverse方法调用后,返回值都是当前对象自己,所以说,StringBuffer它可以改变字符序列的长度和内容。

 其他:

public static void main(String[] args) {
        StringBuffer buffer=new StringBuffer("you");
        System.out.println(buffer);
        StringBuffer buffer1=new StringBuffer();
        System.out.println(buffer1);
        //追加
        buffer.append(" are");
        buffer.append(" beautifal ");
        buffer.append(true);
        buffer.append(56);
        System.out.println(buffer);
        //delate包头不包尾
        buffer.delete(3, 14);
        System.out.println(buffer);
        //插入
        buffer.insert(3, " are beauti");
        System.out.println(buffer);
        //替换(包头不包尾)
        buffer.replace(0, 10, " haha ");
        System.out.println(buffer);
        //反转
        buffer.reverse();
        System.out.println(buffer);
        //转成字符串
        String str=buffer.toString();//转成字符串
        System.out.println(str);
        StringBuffer buffer2=new StringBuffer(str);//转回buffer
    }

练习:

public static String toString_2(int[] arr) {
        StringBuffer sb = new StringBuffer();        
        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();
    }

二、StringBuilder

StringBuilder和StringBuffer的区别

StringBuilder它也是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。

该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。

如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

但是,StringBuilder较StringBuffer,安全程度要低。

猜你喜欢

转载自www.cnblogs.com/Ace-suiyuan008/p/9394815.html