文章目录
- 1. 基本介绍
- 2. String VS StringBuffer
- 3. String和StringBuffer相互转换
- 4. StringBuffer类常见方法
- 5. StringBuffer类测试
1. 基本介绍
java.lang.StringBuffer
代表可变的字符序列,可以对字符串内容进行增删- 很多方法与String相同,但StringBuffer是可变长度的
- StringBuffer是一个容器

public class StringBuffer01 {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("hello");
}
}
2. String VS StringBuffer
- String保存的是字符串常量,里面的值不能更改,每次String类的更新实际
上就是更改地址,效率较低。private final char value[]
StringBuffer
保存的是字符串变量,里面的值可以更改,每次StringBuffer
的更新实际上可以更新内容,不用每次更新地址,效率较高。char[]value;这个放在堆
3. String和StringBuffer相互转换
- 在开发中,经常需要将String和StringBuffer进行转换
public class StringAndStringBuffer {
public static void main(String[] args) {
String str = "hello tom";
StringBuffer stringBuffer = new StringBuffer(str);
StringBuffer stringBuffer1 = new StringBuffer();
stringBuffer1 = stringBuffer1.append(str);
System.out.println(stringBuffer);
System.out.println(stringBuffer1);
StringBuffer stringBuffer3 = new StringBuffer("兮动人");
String s = stringBuffer3.toString();
String s1 = new String(stringBuffer3);
System.out.println(s);
System.out.println(s1);
}
}
hello tom
hello tom
兮动人
兮动人
4. StringBuffer类常见方法
public class StringBufferMethod {
public static void main(String[] args) {
StringBuffer s = new StringBuffer("hello");
s.append(',');
s.append("张三丰");
s.append("赵敏").append(100).append(true).append(10.5);
System.out.println(s);
s.delete(11, 14);
System.out.println(s);
s.replace(9, 11, "周芷若");
System.out.println(s);
int indexOf = s.indexOf("张三丰");
System.out.println(indexOf);
s.insert(9, "赵敏");
System.out.println(s);
System.out.println(s.length());
System.out.println(s);
}
}
hello,张三丰赵敏100true10.5
hello,张三丰赵敏true10.5
hello,张三丰周芷若true10.5
6
hello,张三丰赵敏周芷若true10.5
22
hello,张三丰赵敏周芷若true10.5
5. StringBuffer类测试
public class StringBufferExercise01 {
public static void main(String[] args) {
String str = null;
StringBuffer sb = new StringBuffer();
sb.append(str);
System.out.println(sb.length());
System.out.println(sb);
StringBuffer sb1 = new StringBuffer(str);
System.out.println(sb1);
}
}

public class StringBufferExercise02 {
public static void main(String[] args) {
String price = "8123564.59";
StringBuffer sb = new StringBuffer(price);
for (int i = sb.lastIndexOf(".") - 3; i > 0; i -= 3) {
sb = sb.insert(i, ",");
}
System.out.println(sb);
}
}