StringBuffer:StringBuffer類(lèi)型
描述:在實(shí)際應(yīng)用中,經(jīng)常回遇到對(duì)字符串進(jìn)行動(dòng)態(tài)修改。這時(shí)候,String類(lèi)的功能受到限制,而StringBuffer類(lèi)可以完成字符串的動(dòng)態(tài)添加、插入和替換等操作。
1、構(gòu)造函數(shù)。
StringBuffer() :構(gòu)造一個(gè)沒(méi)有任何字符的StringBuffer類(lèi)。
StringBuffer(int length) : :構(gòu)造一個(gè)沒(méi)有任何字符的StringBuffer類(lèi),并且,其長(zhǎng)度為length。
StringBuffer(String str) :以str為初始值構(gòu)造一個(gè)StringBuffer類(lèi)。
2、方法。
說(shuō)明:
1. 所有方法均為public;
2. 書(shū)寫(xiě)格式:[修飾符] <返回類(lèi)型> <方法名([參數(shù)列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)為類(lèi)方法(static),返回類(lèi)型為(int),方法所需參數(shù)為String類(lèi)型。
1. StringBuffer append(boolean b)
2. StringBuffer append(char c)
3. StringBuffer append(char[] str)
4. StringBuffer append(char[] str, int offset, int len)
5. StringBuffer append(double d)
6. StringBuffer append(float f)
7. StringBuffer append(int i)
8. StringBuffer append(long l)
9. StringBuffer append(Object obj)
10. StringBuffer append(String str)
11. StringBuffer append(StringBuffer sb)
以上的方法都是向字符串緩沖區(qū)“追加”元素,但是,這個(gè)“元素”參數(shù)可以是布爾量、字符、字符數(shù)組、雙精度數(shù)、浮點(diǎn)數(shù)、整型數(shù)、長(zhǎng)整型數(shù)對(duì)象類(lèi)型的字符串、字符串和StringBuffer類(lèi)等。如果添加的字符超出了字符串緩沖區(qū)的長(zhǎng)度,Java將自動(dòng)進(jìn)行擴(kuò)充。
String question = new String("1+1=");
int answer = 3;
boolean result = (1+1==3);
StringBuffer sb = new StringBuffer();
sb.append(question);
sb.append(answer);
sb.append('\t');
sb.append(result);
System.out.println(sb);
結(jié)果為:
1+1=3 false
12. int capacity() :返回當(dāng)前StringBuffer對(duì)象(字符串緩沖區(qū))的總空間,而非字符號(hào)串的長(zhǎng)度。
13. char charAt(int index) :在當(dāng)前StringBuffer對(duì)象中取索引號(hào)為index的字符。第一個(gè)字符的索引為“0”
14. StringBuffer delete(int start, int end) :刪除當(dāng)前StringBuffer對(duì)象中以索引號(hào)start開(kāi)始,到end結(jié)束的子串。
15. StringBuffer deleteCharAt(int index) :刪除當(dāng)前StringBuffer對(duì)象中索引號(hào)為index的字符。
16. void ensureCapacity(int minimumCapacity) :重新設(shè)置字符號(hào)串緩沖區(qū)的總空間。如果minimumCapacity大于當(dāng)前的總空間,則新的空間被設(shè)置:一種結(jié)果是minimumCapacity;另一種結(jié)果是{“老空間”乘2加2}。
StringBuffer sb1 = new StringBuffer(5);
StringBuffer sb2 = new StringBuffer(5);
sb1.ensureCapacity(6);
sb2.ensureCapacity(100);
System.out.println( "sb1.Capacity: " + sb1.capacity() );
System.out.println( "sb2.Capacity: " + sb2.capacity() );
結(jié)果為:
sb1.Capacity: 12
sb2.Capacity: 100
17. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :從當(dāng)前StringBuffer對(duì)象的索引號(hào)srcBegin開(kāi)始,到srcEnd結(jié)束的子串,賦值到字符數(shù)組dst中,并且從dst的索引號(hào)dstBegin開(kāi)始。
StringBuffer sb = new StringBuffer("I love her!");
char[] i = {'I',' ','l','o','v','e',' ','y','o','u'};
sb.getChars(7,10,i,7);
System.out.println( "sb: " + sb );
結(jié)果為:sb: I love her!
18. int indexOf(String str) :返回當(dāng)前StringBuffer對(duì)象中,第一個(gè)滿足str子串的位置。
19. int indexOf(String str, int fromIndex) :從當(dāng)前StringBuffer對(duì)象的fromIndex開(kāi)始查找,返回第一個(gè)滿足str子串的位置。
20. StringBuffer insert(int offset, boolean b)
21. StringBuffer insert(int offset, char c)
22. StringBuffer insert(int offset, char[] str)
23. StringBuffer insert(int index, char[] str, int offset, int len)
24. StringBuffer insert(int offset, double d)
25. StringBuffer insert(int offset, float f)
26. StringBuffer insert(int offset, int i)
27. StringBuffer insert(int offset, long l)
28. StringBuffer insert(int offset, Object obj)
29. StringBuffer insert(int offset, String str)
以上的方法都是在當(dāng)前StringBuffer對(duì)象中插入一個(gè)元素,在索引號(hào)offset處插入相應(yīng)的值。
30. int lastIndexOf(String str) :返回當(dāng)前StringBuffer對(duì)象中,最后一個(gè)滿足str子串的位置。
31. int lastIndexOf(String str, int fromIndex) :從當(dāng)前StringBuffer對(duì)象的fromIndex開(kāi)始查找,返回最后一個(gè)滿足str子串的位置。
32. int length() :返回當(dāng)前StringBuffer對(duì)象(字符緩沖區(qū))中,字符串的長(zhǎng)度。注意:此方法與capacity() 不同。
33. StringBuffer replace(int start, int end, String str) :替換當(dāng)前StringBuffer對(duì)象的字符串。從start開(kāi)始,到end結(jié)束的位置替換成str。
34. StringBuffer reverse() :將字符串翻轉(zhuǎn)。
StringBuffer sb = new StringBuffer("0123456789");
System.out.println( "sb.reverse(): " + sb.reverse() );
結(jié)果為:sb.reverse(): 9876543210
35. void setCharAt(int index, char ch) :設(shè)置索引號(hào)index的字符為ch。
36. void setLength(int newLength) :重新設(shè)置字符串緩沖區(qū)中字符串的長(zhǎng)度,如果newLength小于當(dāng)前的字符串長(zhǎng)度,將截去多余的字符。
StringBuffer sb = new StringBuffer("0123456789");
sb.setLength(5);
System.out.println( "sb: " + sb );
結(jié)果為:sb: 01234
37. String substring(int start) :取當(dāng)前StringBuffer對(duì)象中,從start開(kāi)始到結(jié)尾的子串。
38. String substring(int start, int end) :取當(dāng)前StringBuffer對(duì)象中,從start開(kāi)始到end的子串。
39. String toString() :將當(dāng)前StringBuffer對(duì)象轉(zhuǎn)換成String對(duì)象。