JavaSE——三个特殊的类:StringBuffer类

StringBuffer类

1.引入

       任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的只不过是其引用的指向而已
       由于String的不可改性,为了方便字符串修改,提供了StringBuffer类,在String中使用"+"来进行字符串连接,但是这个操作在StringBuffer中需要改为append()方法

public synchronized StringBuffer append(各种数据类型 b)
2.基本使用

StringBuffer和String最大的区别在于:String的内容无法修改,而StringBuffer的内容可以修改。如果需要频繁需改字符串,那么建议使用StringBuffer。如下

public class C{
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("Hello").append("zoujier");
        fun(sb);
        System.out.println(sb);
    }

    public static void fun(StringBuffer temp){
        temp.append("\n").append("www.zoudapaochibaba.cn");
    }
}
//输出
//Hellozoujier
//www.zoudapaochibaba.cn
3.String和StringBuffer继承结构
String类StringBuffer类
public final class String implements java.io.Serializable,Comparable,CharSequencepublic final class StringBuffer extends AbstractStringBuider implements java.io.Serializable,CharSequence

可以看出两个类都是"CharSequence"接口的子类,这个借口描述的是一系列字符集。所以字符串时字符集的子类,以后见到CharSequence最简单的联想就是字符串。

4.String和StringBuffer的转换

String和StringBuffer类不能直接转换,想要互相转换需要采用以下原则
4.1.String变为StringBuffer:利用StringBuffer的构造方法append()方法
4.2.StringBuffer变为String:调用toString()方法

5.除append()外StringBuffer类中一些String类没有的方法

5.1.字符串反转

public synchronized StringBuffer reverse()

范例

StringBuffer s = new StringBuffer("zoujierchibaba");
System.out.println(s.reverse());//ababihcreijuoz

5.2.删除指定范围数据
如果删除区间的后半部分超过最字符串范围,默认删除到最后结束

public synchronized StringBuffer delete(int start,int end)

范例

StringBuffer s = new StringBuffer("hellozoujier");
System.out.println(s.delete(5,7));//hellojier

5.3.插入数据
会从offset当前对应的索引位置插入,而不是从offset位置后面开始插入

public synchronized StringBuffer insert(int offset,各种数据类型 b)

范例

StringBuffer s = new StringBuffer("hellojier");
System.out.println(s.delete(5,10).insert(0,"你好"));//你好hello
6.String和StringBuffer、StringBuilder的区别

6.1.String内容不可修改,StringBuffer和StringBuilder内容可以修改
6.2.StringBuffer采用同步处理,属于线程安全操作,StringBuilder采用异步处理,属于线程不安全操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值