您的位置:首页 > 产品设计 > UI/UE

黑马程序员_StringBuffer StringBuilder

2014-01-12 19:51 381 查看
------- android培训java培训、期待与您交流!
----------

一、StringBuffer

StringBuffer字符串缓冲区:

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

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

3,StringBuffer是一个容器;

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

5,StringBuffer是可变长度的;

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);将start至end-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);
返回start至end-1的子串

二、StringBuilder

StringBuilder字符串缓冲区:

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

StringBuffer和StringBuilder的区别:

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培训、期待与您交流!
----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: