一、String、StringBuffer和StringBuilder的区别

1.String是内容不可变的,而StringBuffer和StringBuilder都是内容可变的。

2.StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高。

二、StringBuffer的方法

1.添加:append(),insert()

2.删除:deletecharAt(),delete()

3.替换:replace()

4.反转:reverse()

5.截取:subString()(返回值类型String)

三、.StringBuffer和String的相互转换

  1. /* String -- StringBuffer */
  2. //方式1:通过构造方法
  3. String s ="hello";
  4. StringBuffer sb =newStringBuffer(s);
  5.                //方式2:通过append方法
  6. String s2 ="hello";
  7. StringBuffer sb2 =newStringBuffer();
  8. sb2.append(s);
  1.                //StringBuffer ---String
  2. //方式1:通过构造方法
  3. StringBuffer buffer =newStringBuffer("hello");
  4. String str =new  String(buffer);
  5. //方式2:通过toString()方法
  6. String str2 = buffer.toString();

四、String和StringBuffer作为形参传递(要特别注意)

String做为形参传递,效果和基本数据类型一致。

  1. publicclassStringTest{
  2. publicstaticvoid main(String[] args){
  3.    String s1 ="hello";
  4.    String s2 ="world";
  5.    System.out.println(s1+"===="+s2);//hello====world
  6.    change(s1,s2);
  7.    System.out.println(s1+"===="+s2);//hello====world
  8.    
  9.    StringBuffer sb1 =newStringBuffer("hello");
  10.    StringBuffer sb2 =newStringBuffer("world");
  11.    System.out.println(sb1+"======"+sb2);//hello====world
  12.    change(sb1,sb2);
  13.    System.out.println(sb1+"======"+sb2);//hello======worldworld
  14. }
  15. publicstaticvoid change(StringBuffer sb1,StringBuffer sb2){
  16. sb1 = sb2;
  17. sb2.append(sb1);
  18. }
  19. publicstaticvoid change(String s1,String s2){
  20. s1 = s2;
  21. s2 = s1 + s2;
  22. }
  23. }
 
05-18 10:18