Java Stringbuffer

Stringbuffer(容器)使用场景

1,拼串
2,StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。

//拼串的时候,我们经常使用+
        String str = "aaa" + "bbb" + "cccc" + "ddd";
        // StringBuffer 可以解决拼串的问题
        // String 类 这个字符串一旦定义好,他的内容和长度就不可改变了
        // StringBuffer 相当于一个字符容器,他的长度和内容是可变的。

3,获取容量capacity()

StringBuffer sb = new StringBuffer();
        int capacity = sb.capacity();
        System.out.println(capacity);	

4, StringBuffer( int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区。

StringBuffer sb2 = new StringBuffer(1000);
        int capacity1 = sb2.capacity();
        System.out.println(capacity1);

5,构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。

StringBuffer sb3 = new StringBuffer("abdeasdfasdfasdfasdfassfdasdfasfasfas");
        int capacity2 = sb3.capacity();
        int length = sb3.length();
        System.out.println(capacity2); //获取容量
        System.out.println(length);//获取长度

		 // OutOfMemoryError 堆内存溢出
        long[] ints = new long[900000000];
        System.out.println(ints);

6,往容器中追加内容

StringBuffer sb = new StringBuffer();
//public StringBuffer append (String str):
 sb.append(100).append(3.14).append("abc");
  String s = sb.toString();//StringBuffer 重新了toString() 把容器中的数据拼接成字符串返回
        System.out.println(s);

7,在指定索引的前面插入内容,返回的还是容器本身

StringBuffer sb = new StringBuffer();
        sb.append(200).append(true).append("abc");
        StringBuffer sb2 = sb.insert(2, "hehe");//在指定索引的前面插入内容,返回的还是容器本身
        System.out.println(sb);
        System.out.println(sb==sb2);

8,删除缓冲区的数据`

//删除缓冲区的数据
        StringBuffer sb = new StringBuffer();
        sb.append("abc").append("我爱你");
        //删除我
        sb.deleteCharAt(3); //根据索引删除容器中的某个字符,返回的还是原来的容器
        sb.delete(3,sb.length()); //根据起始索引和终止索引,删除容器中的一段内容 ,返回的还是原来的容器

        System.out.println(sb.toString());

9,根据起始索引和 终止索引,替换一段你指定的新内容,返回的还是你原来的容器

StringBuffer sb = new StringBuffer();
        sb.append("aaa").append("bbb").append("cccc");
        //根据起始索引和 终止索引,替换一段你指定的新内容,返回的还是你原来的容器
        StringBuffer sb2= sb.replace(0, 3, "AAA");
        System.out.println(sb);
        System.out.println(sb2);

10,反转容器中的内容

StringBuffer reverse = sb.reverse(); //返回的还是你原来的容器
        System.out.println(sb);
        System.out.println(sb2);
        System.out.println(reverse);

11,根据指定的起始索引和结束索引,截取容器中的一段数据,以String类型返回

String substring = revese.substring(0,7)
System.out.println(substring);

StringBuffer和String的相互转换

//方式1:通过toString()
        StringBuffer sb = new StringBuffer();
        sb.append(100);
        String s = sb.toString();

        //方式2   substring(0);
        String s1= sb.substring(0);

        //方式3: 构造
        String s2 = new String(sb);

String转换StringBuffer

		//方式1 通过构造
        String str="abc";
        StringBuffer sb2 = new StringBuffer(str);
        //方式2 添加
        StringBuffer append = new
        StringBuffer().append(str);

13,检索该字符串在容器中第一次出现的索引 indexOf

		StringBuffer sb= new StringBuffer();
        sb.append("像我这样优秀的人,本该灿烂过一生");
        int index = sb.indexOf("人");
        System.out.println(index);

14,案例演示

public class MyTest {
    public static void main(String[] args) {
        /* A:
        案例演示
        需求:把数组中的数据按照指定个格式拼接成一个字符串
        举例:
        int[] arr = {1, 2, 3};
        输出结果:
        "[1, 2, 3]"
        用StringBuffer的功能实现*/

        int[] arr = {1,2,3};
        StringBuffer sb = new StringBuffer("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length-1){
                sb.append(arr[i]).append("]");
            }else{
            sb.append(arr[i]).append(",");
        }

        }
        System.out.println(sb);
    }

}```
15,案例演示2

```java
public class MyTest2 {
    public static void main(String[] args) {
        /* A:
        案例演示
        需求:把字符串反转
        举例:键盘录入 "abc"
        输出结果:"cba"*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("请随便输入一段字符串");
        String s = scanner.nextLine();
        StringBuffer s1 = new StringBuffer(s).reverse();
        System.out.println(s1);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值