黑马程序员_StringBuffer StringBuilder

来源:互联网 发布:seo方面的工作 编辑:程序博客网 时间:2024/06/17 17:43

------- android培训java培训、期待与您交流! ---------- 

 

一、StringBuffer

StringBuffer字符串缓冲区:

1,字符串的组成原理就是通过该类实现的;

2stringbuffer可以对字符串的内容进行增删;

3StringBuffer是一个容器;

4,很多的方法与String相同;

5StringBuffer是可变长度的;

StringBuffer的特点:

1:可以对字符串内容进行修改。

2:是一个容器。

3:是可变长度的。

4:缓冲区中可以存储任意类型的数据。

5:最终需要变成字符串。

StringBuffer的功能:

1,添加

StringBufferappend():将指定数据作为参数添加到已有数据结尾处。

       StringBufferinsert(index,数据):可以将数据插入到指定index位置。

2,删除

       StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包 end

       StringBufferdeleteCharAt(index):删除指定位置的字符。

sb.delete(0,sb.length());清空缓冲区。

3,获取

       charcharAt(int index)

       intindexOf(String str)

       intlastIndexOf(String str)

       intlength()

       Stringsubstring(int start, int end)

4,修改

       StringBufferreplace(start,end,string);startend-1替换成     string

       voidsetCharAt(int index, char ch) ;替换指定位置的字符

voidsetLength(len);将原字符串置为指定长度的字符串

5,反转

       StringBufferreverse();

6,将缓冲区中指定数据存储到指定字符数组中

       voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

7,查找,查不到返回-1

    intindexOf(string);返回的是string在字符串中第一次出现的位置          int indexOf(string,int fromIndex);从指定位置开始查找字符串

int lastIndexOf(string);反向查找string在字符串中第一次出现的位置          int lastIndexOf(string,int fromIndex);反向查找指定位置的字符串

8,获取子串。

    string substring(start);返回start到结尾的子串

    string substring(start,end);返回startend-1的子串

二、StringBuilder

StringBuilder字符串缓冲区:

JDK1.5版本之后出现了StringBuilder.方法和StringBuffer一样;就是有 没有锁的问题。

StringBufferStringBuilder的区别:

StringBuffer是线程同步,在多线程时使用,比较安全。

StringBuilder是线程不同步,在单线程时使用,效率比较高。

所以在以后开发,一般的情况使用StringBuilder

-->补充一点课外的知识就是java升级的三个因素:1.提高效率,2.简化书     写,3.提高安全性。。。。显然StringBuilder是提高效率的。

小练习::

练习一:

StringBuildersb = new StringBuilder("abcdefg");

        sb.append("ak");  //abcdefgak添加

        sb.insert(1,"et");//aetbcdefg插入

        sb.deleteCharAt(2);//abdefg删除指定位置的字符

        sb.delete(2,4);//abefg删除字符,包含头不包含尾

        sb.setLength(4);//abcd指定长度

        sb.setCharAt(0,'k');//kbcdefg修改

       sb.replace(0,2,"hhhh");//hhhhcdefg修改

练习二:

StringBuffersb = new StringBuffer();     

sb.append(12).append("haha");//方法调用链。

所谓方法调用链就是一连串的调用,返回来时对象,对象还能调用方法。

练习三:

class  Test {

    public staticvoid main(String[] args) {

        Strings1 = "java";

        Strings2 = "hello";

       method_1(s1,s2);

       System.out.println(s1+"...."+s2); //java....hello

        StringBuilder s11 = new StringBuilder("java");

       StringBuilder s22 = new StringBuilder("hello");

       method_2(s11,s22);

       System.out.println(s11+"-----"+s22); //javahello-----hello

    }

    publicstatic void method_1(String s1,String s2){

       s1.replace('a','k');

        s1 = s2;

    }

    publicstatic void method_2(StringBuilder s1,StringBuilder s2){

       s1.append(s2);

        s1 = s2;

          }

}

------- android培训java培训、期待与您交流! ---------- 

 

0 0
原创粉丝点击