StringBuffer类用于可变字符串处理,即实现字符串内容的添加、修改和删除等操作。

1. 创建StringBuffer对象

public StringBuffer()
public StringBuffer(int length)
public StringBuffer(String str)

2. StringBuffer的主要方法

方法 功能
StringBuffer append(Object obj) 将某个对象的串描述添加到StringBuffer尾部。
StringBuffer insert(int position, Object obj) 将某个对象的串描述插入到StringBuffer中的某个位置。
StringBuffer insert(int index, char[] str, int offset,int len) 将字符数组str中从offset位置开始的len个字符插入到串的index位置。
StringBuffer setCharAt(int position, char ch) 用新字符替换指定位置字符。
StringBuffer deleteCharAt(int position) 删除指定位置的字符。
StringBuffer replace(int start, int end, String str) 将参数指定范围的一个子串用新串替换。
String substring(int start, int end) 获取所指定范围的子串。
  1. //1、思考以下代码段对应的运行结果
  2. StringBuffer str1=new StringBuffer();
  3. str1.append("Hello,mary!");
  4. str1.insert(6,30);
  5. System.out.println(str1.toString());
  6. //结果为:Hello,30mary!
  7. public class Test{
  8. public static void main(String argv[]){
  9. StringBuffer x=new StringBuffer("hello");
  10. myMethod(x);
  11. System.out.println("x="+x);
  12. }
  13. static void myMethod(StringBuffer k){
  14. k=k.append(",你好");
  15. System.out.println("k="+k);
  16. }
  17. }
  18. //运行结果
  19. /*
  20. k=hello,你好
  21. x=hello,你好
  22. */
  23. class E {
  24. public static void main(String[ ] args) {
  25. StringBuffer sb1 = new StringBuffer("hello");
  26. StringBuffer sb2 = new StringBuffer("hello");
  27. if (sb1.equals(sb2)) //注意:StringBuffer 类没有重写equals方法 !
  28. System.out.println("equal");
  29. else
  30. System.out.println("not equal");
  31. }
  32. }
  33. 运行结果:not equal
  34. 7-4 将一个字符串反转
  35. public class StringsDemo {
  36. public static void main(String[] args) {
  37. String s = "Dot saw I was Tod";
  38. int len = s.length();
  39. StringBuffer dest = new StringBuffer(len);
  40. for (int i = (len - 1); i >= 0; i--)
  41. dest.append(s.charAt(i));
  42. /*
  43. String des= " ";
  44. for (int i = (len - 1); i >= 0; i--)
  45. des=des+s.charAt(i);
  46. */
  47. //StringBuffer有reverse()字符串反转函数
  48. System.out.println(dest.toString());
  49. }
  50. }
  51. 写程序的运行结果
  52. public class Foo {
  53. public static void main (String [ ] args) {
  54. StringBuffer a = new StringBuffer("A");
  55. StringBuffer b = new StringBuffer("B");
  56. operate(a,b);
  57. System.out.println(a + "," +b);
  58. }
  59. static void operate (StringBuffer x, StringBuffer y) {
  60. x.append(y);
  61. y = x;
  62. }
  63. }
  64. 运行结果:AB,B
  65. public class Foo {
  66. public static void main (String [ ] args) {
  67. String a = new String("A");
  68. String b = new String("B");
  69. operate(a,b);
  70. System.out.println(a + "," +b);
  71. }
  72. static void operate (String x, String y) {
  73. x=x+y;
  74. y = x;
  75. }
  76. }
  77. 运行结果:A,B