Java小记——StringBuffer类

本文详细讲解了String和StringBuffer在Java中的区别,包括String的固定长度和不可变特性,以及StringBuffer的可变长度和各种操作方法如添加、删除、替换、反转等。同时介绍了它们之间的转换方式和在多线程场景下的选择建议。
摘要由CSDN通过智能技术生成

目录

String和StringBuffer的区别

StringBuffer的构造方法

StringBuffer的添加功能

StringBuffer的删除功能

StringBuffer的替换和反转功能

StringBuffer的获取索引

StringBuffer的截取功能

String和StringBuffer的相互转换

StringBuffer和StringBuilder的区别

StringJoiner


String和StringBuffer的区别

1.String 长度固定,值不可改变

2.StringBuffer是一个长度可变的字符容器

StringBuffer的构造方法

1.StringBuffer()    构造一个空的字符容器,默认容量为16个字符

StringBuffer  bb = new StringBuffer()    //创建一个空的字符容器

获取容量

int capacity = bb.capacity();
System.out.println(capacity);

2.StringBuffer(int capacity)      构造一个不带字符,指定容量的字符串缓冲区

StringBuffer bb2 = new StringBuffer(100)    

3.StringBuffer(String str)      指定字符串内容为字符串缓冲区对象

StringBuffer bb3 = new StringBuffer("Hello");

int capacity = bb3.capacity();
System.out.println(capacity)     //打印21 

int length = bb3.length()

System.out.println(length)    //打印5

StringBuffer的添加功能

1.append(...)    添加任意类型的数据

StringBuffer bb = new StringBuffer();

bb.append("Hello");     //不用取名字,返回的还是原来那个容器bb

bb.append(3.14); 

System.out.println(bb);    //打印Hello3.14

2.insert(int a,String b)    在a索引前添加b内容

StringBuffer bb = new StringBuffer();

bb.append("Hello");

bb.insert(1,"cc");

System.out.println(bb);  //打印Hccello

System.out.println(bb.toString());  //打印Hccello,重写toString()方法,转换成字符串返回

StringBuffer的删除功能

1.deleteCharAt(int)    删除指定位置的字符

2.delete(int start, int end)   删除一段字符串,含头不含尾

StringBuffer的替换和反转功能

1.replace(int start, int end, String s)     替换内容,含头不含尾

StringBuffer bb = new StringBuffer();

bb.append("Helo123");

bb.replace(0,4,"456");

System.out.println(bb);   //打印456123

2.reverse()    反转容器中的内容

StringBuffer bb = new StringBuffer();

bb.append("Helo123");

bb.reverse();

System.out.println(bb);

StringBuffer的获取索引

1.int indexOf (String str)     从头查找该字符串,在容器中第一次出现的索引,如果找不到就返回-1

2.int indexOf (String str,int fromIndex)     从指定索引处开始查找该字符串第一次出现的索引,如果找不到就返回-1   ,含头

3.int lastIndexOf (String str)   从后往前找

4.int lastIndexOf (String str,int fromIndex)

StringBuffer的截取功能

1.substring(int start)   从指定位置截取到末尾,返回的是字符串

StringBuffer bb = new StringBuffer();

bb.append("Helo123");

String o = bb.substring(1);

System.out.println(o);  //打印elo123

2.substring(int start,int end)    从指定位置到结束位置,含头不含尾

StringBuffer bb = new StringBuffer();

bb.append("Helo123");

String o = bb.substring(1,4);

System.out.println(o);  //打印elo

注意事项 :返回类型不再是容器,而是字符串

String和StringBuffer的相互转换

1.String转StringBuffer

String str = "Hello";

StringBuffer bb = new StringBuffer(str);

2.StringBuffer转String

StringBuffer bb = new StringBuffer("Hello");

String s = bb.toString(); //或bb.substring(0)

StringBuffer和StringBuilder的区别

1.StringBuffer安全,StringBuilder不安全

2.StringBuffer效率低,StringBuilder效率高

3.多线程操作大量数据,推荐用StringBuffer

   单线程操作大量数据,推荐用StringBuilder

StringJoiner

创建字符容器,指定分隔符

使用前

import java.util.StringJoiner;

1.add(String s)   添加

StringJoiner bb = new StringJoiner("-");

String s = bb.add("sda").add("dasda").toString();

System.out.println(s); //打印sda-dasda

2.指定分隔符,前缀和后缀

StringJoiner bb = new StringJoiner("-", "[", "]");

String s = bb.add("sda").add("dasda").toString();

System.out.println(s); //打印[sda-dasda]

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jmh-Ethereal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值