120_初识Java_StringBuffer类_学习

120_初识Java_StringBuffer类_学习

String,StringBuffer,StringBuilder的区别与联系

StringBuffer s = new StringBuffer("abcdefghijk");
 s.append("增加增加");
 s.delete(3,6);//删除[3-6) 不含第6位的字符
 s.deleteCharAt(2);//删除第几位字符
 s.insert(3,"--");//在下标为3的位置插入
 s.replace(3,5,"哈哈哈哈哈");//替换
 s.setCharAt(3,'-');//设置第3位字符
 s.charAt(4);//查看第4位字符
 s.substring(2,4);//截取的是[2,4) 不含位置4

1、StringBuffer常用方法

package com.llg.learnStringBuilder;

public class Learn3 {
    //程序的入口
    public static void main(String[] args) {
        testStringBuffer();

    }

    public static void testStringBuffer(){
        System.out.println("===========testStringBuffer================");
        StringBuffer s = new StringBuffer("abcdefghijk");
        //增加
        s.append("增加增加");
        System.out.println(s);//abcdefghijk增加增加
        //删除
        s.delete(3,6);//删除[3-6) 不含第6位的字符
        System.out.println(s);//abcghijk增加增加
        s.deleteCharAt(2);//删除第几位字符
        System.out.println(s);//abghijk增加增加

        //插入
        StringBuffer s2 = new StringBuffer("0123456");
        s2.insert(3,"--");//在下标为3的位置插入
        System.out.println(s2);//012--3456

        //替换
        StringBuffer s3 = new StringBuffer("0123456");
        s3.replace(3,5,"哈哈哈哈哈");
        System.out.println(s3);//012哈哈哈哈哈56

        StringBuffer s4 = new StringBuffer("0123456");
        //设置
        s4.setCharAt(3,'-');
        System.out.println(s4);//012-456
        //查
        System.out.println(s4.charAt(4));//4

        StringBuffer s5 = new StringBuffer("0123456");
        //截取
        System.out.println(s5.substring(2,4));//23  截取的是[2,4) 不含位置4
    }
}

120_初识Java_StringBuffer类_学习

2、String,StringBuffer,StringBuilder的区别与联系

-String 类是不可变类:一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。

  • StringBuffer类表示一个字符序列可变的字符串,可通过append,insert,reverse,setChartAt,setLength等方法改变其内容。调用toString方法将其转变为String
  • JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同的是StringBuffer是线程安全的,而String Builder是线程不安全的,所以性能略高。
  • 通常创建一个可变内容的字符串,应该优先考虑使用StringBuilder
  • StringBuilder:JDK1.5开始 效率略高,线程不安全
  • StringBuffer:JDK1.0开始 效率略低,线程安全
上一篇:端午节,我用 Python 画了一盘粽子送给大家


下一篇:37岁程序员被裁,120天没找到工作,无奈去小公司,结果蒙了