黑马程序员---StringBuffer

来源:互联网 发布:evdo.evdo_a是什么网络 编辑:程序博客网 时间:2024/06/04 19:31
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

 

StringBuffer是字符串缓冲区。

 是一个容器。

   特点:

  1.  而且长度是可变化的。
  2.  可以直接添加多个数据类型。
  3.  最终会自动通过toString()方法变成字符串。

 

C  create  U  update  R  read  D  delete

1.存储。

  • StringBuffer  append (指定数据)   //将指定数据作为参数添加到已有数据的结尾处。
  • StringBuffer  insert ( int offset, 指定数据 )   //可以在指定位置插入数据

2.删除。

  • StringBuffer  delete ( int start,  int end )   //删除缓冲区中的数据,包含start,不包含end。
  • StringBuffer  deleteCharAt ( int  index )   //删除指定位置的字符。

3.获取。

  • char  charAt ( int  index )   //获取指定位置的一个字符
  • int  indexOf ( String  str )   //获取指定子串在此字符串中第一次出现的位置
  • int  lastIndexOf ( String  str )   //获取指定子串在此字符串中最后一次出现的位置
  • int  length ()   //获取长度
  • String  substring ( int  start )   //获取从start位置开始到结尾的子串
  • String  substring ( int start, int end )   //获取包含start、不包含end的子串

4.修改。

  • StringBuffer  replace ( int start, int end, String str )   //使用给定str替换此字符串中[start,end)的子串
  • void  setCharAt ( int index, char ch )   //将指定索引处的字符替换为ch,不返回。

5.反转。

           StringBuffer  reverse ()   //将缓冲区中的内容用其反转形式取代。

6.  将缓冲区中的字符[srcBegin,srcEnd),复制到给定数组dst中从dstBegin位置

           void getChars ( int srcBegin,  int srcEnd,  char[] dst,  int dstBegin )

 

class StringBufferDemo { public static void sop(Object obj) //打印 {  System.out.println(obj); }public static void method_add() //append()添加、insert()插入 {  StringBuffer sb = new StringBuffer();sb.append("abc").append(true).append(34);  sop( sb );sb.insert(1,"qq"); //如果指定位置不存在,会发生StringIndexOutOfBoundsException。  sop( sb ); }public static void method_del() //delete()删除指定子串、deleteCharAt()删除指定字符 {  StringBuffer sb = new StringBuffer("abcde");  sop( sb );  //sb.delete(1,3);  //sop( sb );//清空缓冲区  //sb.delete(0,sb.length());sb.deleteCharAt(2);  sop( sb ); }  public static void method_update() //replace()替换字符串、setCharAt()替换单个字符,不返回 {  StringBuffer sb = new StringBuffer("abcde");  sop(sb.toString());  //sb.replace(1,4,"java");  //sop(sb.toString());  sb.setCharAt(2,'k');  sop(sb.toString()); }  public static void main(String[] args) //主函数,程序入口。 {  //method_add();  //method_del();   //method_update(); StringBuilder sb = new StringBuilder("abcdef");  char[] ch = {' ',' ',' ',' '};  sb.getChars(1,4,ch,1);  for(int x=0;x<ch.length;x++)  {   sop("ch["+x+"]="+ch[x]+";");  } }}



JDK 1.5版本之后出现了StringBuilder。

    StringBuffer是线程同步。

    StringBuilder是线程不同步。

以后开发,建议使用StringBuilder。

 

    升级的三个因素:

        1.提高效率。

        2.简化书写。

        3.提高安全性。

 

 

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

0 0