文章目录
一 、简述
String类的内容一旦声明则不可改变,如果要改变,则改变的是String的引用地址。那么如果一个字符串要被经常改变,则就必须使用 StringBuffer 类
二 、StringBuffer的常用方法
1 、字符串连接操作
String类中通过 “+” 进行字符串的连接,但在 StringBuffer 中使用 append() 方法进行字符串连接*
(1)、通过append连接各种类型的数据
public class StringBufferDemo01 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello ");
buffer.append("World").append("!!!");
buffer.append("\n"); //添加转义字符表示换行
buffer.append("数字=").append(1).append("\n");
buffer.append("布尔=").append(true);
System.out.println(buffer);
}
}
程序运行结果:
(1)、验证StringBuffer的内容是可以修改的
public class StringBufferDemo02 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello ");
fun(buffer);
System.out.println(buffer);
}
public static void fun(StringBuffer s){
s.append("World ").append("!!!");
}
}
程序运行结果:
2 、在任意位置处为 StringBuffer 添加内容
public class StringBufferDemo03 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("World!!");
buffer.insert(0,"Hello "); //在内容之前添加
System.out.println(buffer);
buffer.insert(buffer.length(),"Java"); //在内容最后添加
System.out.println(buffer);
}
}
程序运行结果:
3 、字符串反转操作
public class StringBufferDemo04 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("ABCDE");
System.out.println(buffer.reverse());
}
}
程序运行结果:
4 、替换指定范围的内容
public class StringBufferDemo05 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello World!");
buffer.replace(6,11,"Java"); //6开始,11之前的位置内容(World)替换为Java
System.out.println(buffer);
}
}
程序运行结果:
备注:String中使用replaceAll()方法进行替换,StringBuffer 中使用replace()方法替换
5 、字符串截取操作
public class StringBufferDemo06 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello World Java!");
System.out.println(buffer.substring(12,16)); //指定截取范围,6开始,16之前
}
}
程序运行结果:
6 、删除指定范围字符串
public class StringBufferDemo07 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello World!");
System.out.println(buffer.delete(6,11)); //指定删除范围,6开始,11之前
}
}
程序运行结果:
7 、查找指定的内容是否存在
public class StringBufferDemo08 {
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer();
buffer.append("Hello World!");
if(buffer.indexOf("Hello")!=-1){
System.out.println("指定内容存在!");
}
}
}
程序运行结果: