Java

Java18 StringBuffer与StringBuilde

2018-12-28  本文已影响0人  第二套广播体操

StringBuffer
字符串的组成原理就是通过该类实现 可以对字符串进行增删改查
StringBuffer 是一个容器 很多方法与String相同
StringBuffer 可变长度 构造方法中可以自己设置数组长度 也可是自增 (影响内存)
线程安全,可变的字符序列。 字符串缓冲区就像一个String中的类 ,可以修改。 在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。

方法:

StringBuffer append(int i); 可以填入多种类型 包括对象。byte short不行
StringBuffer insert(int index, int i);根据坐标插入

StringBuffer delete(int start ,int end); 取索引一段带前后位置的包括前不包括后
StringBuffer delete(int index);

StringBuffer replace(int start,int end,String str);
StringBuffer reverse(); 导致该字符序列被序列的相反代替。

int indexof(String s);返回索引
设定长度
void setLength(int length);只显示长度内的字符串
小例子:

public class StringBufferDemo1 {
    public static void main(String[] args) {
        String str=StringBuffertest();
        System.out.println(str);
    }
    private static String StringBuffertest() {
        StringBuffer sb=new StringBuffer().append("a").
                append("b").append("c");
        //append方法返回的是Stringbuffer类型 可以通过返回的对象继续调用方法
        return sb.toString();
    }
}

1.通过缓冲区 将要打印的矩形元素*进行储存后,并一次性返回
2.将int数组转换成字符串格式为 [23,42,12]

public class StringBufferDemo2 {
    public static void main(String[] args) {
        String s=draw(6,4);
        System.out.println(s);
    }
    private static String draw(int row, int col) {
        StringBuffer sb=new StringBuffer();
        for (int i = 0; i <row; i++) {
            for (int j = 0; j <col; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        return sb.toString();
    }
}

2

public class StringBufferDemo3 {
    public static void main(String[] args) {
        int[] arr={10,12,31,15};
        String str=toIntString(arr);
        System.out.println(str);
    }
    private static String toIntString(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 可以自己在方法上加锁同步

上一篇下一篇

猜你喜欢

热点阅读