StringBuffer简介加示例代码

Java API中的StringBuffer类

1.StringBuffer类
String字符串类 字符串值不可变,值可以共享
buffer 缓冲区.缓冲器
StringBuffer 字符串缓冲区,作用相当于一个容器,里面存放很多字符串值
特点:
1.线程安全的可变字符序列
2.可以添加任意类型的数据,但是添加进入的数据会被转换成字符串类型
3.StringBuffer类主要是通过append和insert方法进行操作
append添加在字符串的末端
insert添加在字符串的某一位置
通常情况下有索引都是有序的表
4.StringBuffer有索引,可以认为是有序的
5.StringBuffer构建对象会有初始容量,
当存储的元素超出初始容量后会自动扩充
6.JDK5之后,官方提供等价的类StringBuilder
StringBuilder不同步,速度较快

假设你在火车上,只有一个厕所。ABC都在排队。
简单来说,线程同步就是 A进去了,门锁上。
BC只能在外面干等着。这是线程安全的,不会产生问题。
线程不同步就是 A进去的同时,没关门,B也进去了。这是线程不安全。

CRUD操作
添加
插入
删除 
替换

StingBuilder类属于线程不安全的,执行效率高,推荐使用该类
package com.Lesson;

// 定义一个字符串缓冲区类
public class JavaAPI_StringBuffer {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer();

        // 增加 插入 删除 替换

        // append 在末尾附加.添加
        stringBuffer.append("张三");
        stringBuffer.append(true);
        stringBuffer.append(20);
        stringBuffer.append(13.5);
        System.out.println(stringBuffer.toString());
        // 张三true2013.5
        // stringBuffer是有序的
        // 转换成字符串类型的值

        // insert
        stringBuffer.insert(6, "李四");
        System.out.println(stringBuffer.toString());
        // 张三true李四2013.5
        // 插入'男'
        stringBuffer.insert(8, '男');
        System.out.println(stringBuffer.toString());
        // 张三true李四男2013.5

        // 删除
        // delete(int start,int end)
        // 从start到end,不包含end [start,end)
        // 注意索引越界问题
        StringBuffer delete = stringBuffer.delete(6, 8);//6,7元素
        System.out.println("删除之后的剩余的值:"+delete.toString());
        // 删除的元素:张三true男2013.5
        System.out.println(stringBuffer.toString());
        // 张三true男2013.5

        // 替换
        // replace (int start,int end ,String str);
        // 使用给定的String中的字符替换此序列中的子字符串中的字符
        // 先删除delete(),在插入insert()
        StringBuffer replace = stringBuffer.replace(2, 6, "女性");
        System.out.println(stringBuffer.toString());
        // 张三女性男2013.5
        System.out.println("replace的值:"+replace.toString());
        // replace的值:张三女性男2013.5
        // 返回的还是替换之后的值

        // toString() 打印对象时,JVM会自动调用toString()方法

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值