String类
- 任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。
- 通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和StringBuilder类。
- StringBuffer 和 StringBuilder 大部分功能是相同的
StringBuffer类
- 在String中使用"+"来进行字符串连接,但是这个操作在StringBuffer类中需要更改为append()方法:public synchronized StringBuffer append(各种数据类型 b)
- String变成StringBuffer:利用StringBuffer的构造方法append()
- StringBuffer变成String利用toString()方法
StringBuffer类常用方法:
- public synchronized StringBuffer append(各种数据类型 b):字符串的拼接
- public synchronized StringBuffer reverse():字符串的反转
- public synchronized StringBuffer insert(int offset, 各种数据类型 b):插入数据
- public synchronized StringBuffer delete(int start, int end):删除指定范围内的数据[start,end)
public class Demo01StringBuffer {
public static void main(String[] args) {
StringBuffer str1=new StringBuffer();
str1.append("hello").append("world");
System.out.println(str1);//helloworld
StringBuffer str2=str1.reverse();
System.out.println(str1);//dlrowolleh
System.out.println(str2);//dlrowolleh
StringBuffer str3=str1.insert(0,"你好");
System.out.println(str3);//你好dlrowolleh
System.out.println(str1);//你好dlrowolleh
System.out.println(str3.delete(0,2));//dlrowolleh
System.out.println(str3);//dlrowolleh
}
}
面试题:请解释String、StringBuffer、StringBuilder的区别:
- String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
- StringBuffer与StringBuilder大部分功能是相似的
- StringBuffer采用同步处理,属于线程安全操作;而StringBuilder采用异步处理,属于线程不安全操作
注意:与String不同的是StringBuffer所有的操作都会改变原字符串