StringBuffer用法2

本文详细介绍了Java编程语言中的StringBuffer类,包括其构造方法、常用方法如append、insert、delete等,以及在多线程环境下的优势。通过实例代码展示了如何在实际开发中有效利用StringBuffer进行字符串操作,提升效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StringBuffer替换功能
    public StringBuffer replace(int start,int end,String str)
    用指定的String中的字符替换此序列的子字符串中的String 。
    子串开始于指定start并延伸到字符索引end - 1 ,或如果没有这样的字符存在的序列的结束。
    第一子串中的字符被去除,然后指定String被插入在start .
public class StringBufferDemo4 {
    public static void main(String[] args) {
        //创建一个StringBuffer对象
        StringBuffer sb = new StringBuffer();

        //往StringBuffer中添加一些内容
        sb.append("java").append("mysql").append("hadoop").append("hive").append("spark").append("flink");
        System.out.println(sb);

        //public StringBuffer replace(int start,int end,String str)
        sb.replace(4,10,"我一定能学会");
        System.out.println(sb);

    }
}
StringBuffer的反转功能
    public StringBuffer reverse()
    导致该字符序列被序列的相反代替。
    如果序列中包含任何替代对,则将它们视为单个字符进行反向操作
public class StringBufferDemo5 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("我爱你中国");
        System.out.println("反转之前:" + sb);

        System.out.println("反转之后:");
        StringBuffer sb2 = sb.reverse(); // 操作的是同一个StringBuffer对象
        System.out.println(sb);
        System.out.println(sb2);

    }
}

 

StringBuffer的截取功能
    public String substring(int start)
    返回一个新的String ,其中包含此字符序列中当前包含的字符的子序列。
    public String substring(int start,int end)
    返回一个新的String ,其中包含此序列中当前包含的字符的子序列。 
    子串起始于指定的start ,并扩展到索引号为end - 1 。
public class StringBufferDemo6 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("java")
                .append("mysql")
                .append("hive")
                .append("ETL")
                .append("spark");
        System.out.println(sb);//javamysqlhiveETLspark

        //public String substring(int start)
        //不会改变原来StringBuffer中的数据
        //返回值是一个String类型的数据
        String s1 = sb.substring(4);
        System.out.println("截取的内容是:"+s1);//mysqlhiveETLspark
        System.out.println("StringBuffer的内容为:"+sb);

        //public String substring(int start,int end) 含头不含尾 [start,end)
        //javamysqlhiveETLspark
        String s2 = sb.substring(9, 13);
        System.out.println("截取的内容是:"+s2);
        //hiveE--h为第九个元素E为第13个元素含头不含尾====hive
        System.out.println("StringBuffer的内容为:"+sb);//javamysqlhiveETLspark
        }
}

为什么要进行相互转换?
    A-->B,将A转换成B,是为了使用B中的特有功能
    B-->A,再将B转换成A,可能是引用最终的结果需要的是A类型的数据,所以还得转换回来

String与StringBuffer之间的转换。
public class StringBufferDemo7 {
    public static void main(String[] args) {
        //String --> StringBuffer
        String s = "hello";
//        StringBuffer sb = s;
        //java: 不兼容的类型: java.lang.String无法转换为java.lang.StringBuffer
//        StringBuffer sb = "hello";
        //方式1:通过构造方法转换
        StringBuffer sb1 = new StringBuffer(s);
        System.out.println(s);
        System.out.println(sb1);
        //方式2:通过append()
        StringBuffer sb2 = new StringBuffer();
        sb2.append(s);
        System.out.println(s);
        System.out.println(sb2);

        System.out.println("==============================================");
        //StringBuffer --> String
        StringBuffer sb3 = new StringBuffer("bigdata");
        //方式1:toString()方法
        String s1 = sb3.toString();
        System.out.println(sb3);
        System.out.println(s1);
        //方式2:subString
        String s2 = sb3.substring(0);
        System.out.println(s2);
        System.out.println(sb3);
        //方式3:String类的构造方法
        //String(StringBuffer buffer)
        //分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
        String s3 = new String(sb3);
        System.out.println(s3);
        System.out.println(sb3);


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值