String和StringBuffer

   String定长字符串;

   StringBuffer变长字符串,在处理字符串时,每次修改都会改变对象自身而不生成新对象,内存优于String;

   StringBuffer是线程安全的,在多线程程序中可以很方便的使用,但是效率相对慢些。

1.StringBuffer对象初始化

   一般用构造方法来创建,例如:

    StringBuffer s = new StringBuffer(); s为空对象

    StringBuffer s = new StringBuffer("abc"); s为"abc"

 【注】StringBuffer与String为不同类型,不能直接强转,StringBuffer对象和String对象之间互转如下:

     String s="abc";

     StringBuffer sb1 = new StringBuffer("123");

     StringBuffer sb2 = new StringBuffer(s);//String-->StringBuffer;

     String s1 = sb1.toString();//StringBuffer--->String;

2.StringBuffer常用方法

   a.追加append()[将类容追加到StringBuffer对象的末尾,类似于字符串连接]

       public StringBuffer append(boolean b)

       使用该方法进行字符串的连接,如应用于数据库SQL语句的连接:

             StringBuffer sb = new StringBuffer();

             String user = "test";

             String pwd = "123";

             sb.append("select*from userInfo where username=")

      .append(user)

      .append("and pwd=")

      .append(pwd);

        则sb的值为"select * from userInfo where username=test and pwd=123"。

     b.deleteCharAt()[删除指定位置的字符,之后剩余内容形成新字符串]

           StringBuffer sb = new StringBuffer("0123");

           sb.deleteCharAt(1);

           删除索引为1的字符,所以sb的值变为"023";

         delete(int start,int end)[删除指定区间内的所有字符,包含start,不包含end的区间]

    StringBuffer sb = new StringBuffer("TestString");

    sb.delete(1,4);

    删除索引1-3的字符,所以sb的值变为"TString";

  c.insert()[在StringBuffer对象中插入内容,形成新的字符串]

    StringBuffer sb = new StringBuffer(“TestString”);

           sb.insert(4,false);

    sb的索引值4的位置插入false值,形成新的字符串,sb的值是”TestfalseString”

  d.reverse()[将StringBuffer对象中的内容反转,形成新字符串]

    StringBuffer sb = new StringBuffer(“abc”);

    sb.reverse();

    sb的值为"cba"。

  e.setCharAt(int index, char ch)[修改对象中索引值为index位置的字符为新的字符ch]

    StringBuffer sb = new StringBuffer(“abc”);

            sb.setCharAt(1,’D’);

            则对象sb的值将变成”aDc”

  f.trimToSize()[去掉字符串前后的空格,将对象中的存储空间缩小到和字符串长度一样]

 

posted @ 2014-03-20 22:22  joycelishanhe  阅读(290)  评论(0编辑  收藏  举报