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()处理..