本节目标:
1.掌握StringBuffer与String的区别
2.掌握StringBuffer的常用方法
3.掌握StringBuffer的实际应用
StringBuffer类
StringBuffer是使用缓冲区的,本身也操作字符串,但是与String不同,String类的内容一旦声明之后便不能修改,改变的只是内存地址的引用,而StringBuffer中的内容是可以修改的。
StringBuffer是一个具体的类,不能像String直接赋值进行实例化,必须通过构造方法完成。
StringBuffer常用方法
StringBuffer的实际应用
1.字符串连接
当一个字符串的内容经常被改变的时候,要使用StringBuffer。String通过"+"连接字符串,而StringBuffer连接操作使用append()方法。
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.append('\n');
buf.append(true);
System.out.println(buf);
}
}
StringBuffer的内容是可以修改的:
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.append('\n');
buf.append(true);
fun(buf);
System.out.println(buf);
}
public static void fun(StringBuffer buf){
buf.append("改变内容!");
}
}
2.insert任意位置插入
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.insert(0, "<<<");
buf.insert(buf.length(), ">>>");
System.out.println(buf);
}
}
运行结果:
<<<Hello world>>>
3.字符串反转
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.insert(0, "<<<");
buf.insert(buf.length(), ">>>");
buf.reverse();
System.out.println(buf);
}
}
运行结果:
>>>dlrow olleH<<<
4.替换指定位置内容
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.insert(0, "<<<");
buf.insert(buf.length(), ">>>");
buf.replace(9, 14, "China");
System.out.println(buf);
}
}
运行结果:
<<<Hello China>>>
5.字符串截取
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.insert(0, "<<<");
buf.insert(buf.length(), ">>>");
String str = buf.substring(9, 14);
System.out.println(str);
}
}
运行结果:
world
6.删除
public class StringBufferDemo1 {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hello ").append("world");
buf.insert(0, "<<<");
buf.insert(buf.length(), ">>>");
buf.delete(9, 14);
System.out.println(buf);
}
}
运行结果:
<<<Hello >>>
总结:
对于频繁修改字符串的内容,如果使用String,修改的是内存引用,性能低,采用StringBuffer会更好,修改的是内容,性能高。