文章目录
- 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);}
}