Java学习——StringBuffer和 StringBuilder

StringBuffer 和 StringBuilder


首先来回顾下String类的特点:

任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer类。

一.字符串连接

在String中使用"+"来进行字符串连接,但是这个操作在StringBuffer类中需要更改为append()方法:

        StringBuffer sb = new StringBuffer();
        sb.append("Hello").append(" World");
        System.out.println(sb);

二.StringBuffer与String类的相互转换

String---->StringBuffer

1.append()方法

        StringBuffer sb = new StringBuffer();
        String str = "Hello";
        sb.append(str);
        System.out.println(sb);

2.调用StringBuffer的构造方法 new StringBuffer(“str”)

        String str = "Hello";
        StringBuffer sb = new StringBuffer(str);
        System.out.println(sb);

StringBuffer ——>String

调用StringBuffer.toString();方法

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        String str = sb.toString();
        System.out.println(str);

三.StringBuffer常用操作方法

1.字符串反转

reverse():返回值StringBuffer

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.reverse());//olleH

2.删除指定范围的数据

public synchronized StringBuffer delete(int start, int end) 

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.delete(1,3));//Hlo

3.在指定位置插入数据

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

        StringBuffer sb = new StringBuffer();
        sb.append("Hello");
        System.out.println(sb.insert(5,"World"));//HelloWorld

请解释String、StringBuffer、StringBuilder的区别:

1. String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.

2.StringBuffer与StringBuilder的用法一样,不同的地方在于StringBuffer是jdk1.0产生,采用同步处理,线程安全,效率较低;StringBuilder是jdk1.5产生的,采用异步处理,线程不安全,效率较高;当在String对象进行“+”,编译器会将String类变为StringBuffer进行append()处理..

猜你喜欢

转载自blog.csdn.net/eve8888888/article/details/83476946