這裡總結一下同時適用於String和StringBuffer的方法,以便對它們相互間的溝通方式有一個印象。這些表格並未把每個單獨的方法都包括進去,而是包含了與本次討論有重要關系的方法。那些已被覆蓋的方法用單獨一行總結。
首先總結String類的各種方法:
方法 自變量,覆蓋 用途
構建器 已被覆蓋:默認,String,StringBuffer,char數組,byte數組 創建String對象
length() 無 String中的字符數量
charAt() int Index 位於String內某個位置的char
getChars(),getBytes 開始復制的起點和終點,要向其中復制內容的數組,對目標數組的一個索引 將char或byte復制到外部數組內部
toCharArray() 無 產生一個char[],其中包含了String內部的字符
equals(),equalsIgnoreCase() 用於對比的一個String 對兩個字串的內容進行等價性檢查
compareTo() 用於對比的一個String 結果為負、零或正,具體取決於String和自變量的字典順序。注意大寫和小寫不是相等的!
regionMatches() 這個String以及其他String的位置偏移,以及要比較的區域長度。覆蓋加入了“忽略大小寫”的特性 一個布爾結果,指出要對比的區域是否相同
startsWith() 可能以它開頭的String。覆蓋在自變量裡加入了偏移 一個布爾結果,指出String是否以那個自變量開頭
endsWith() 可能是這個String後綴的一個String 一個布爾結果,指出自變量是不是一個後綴
indexOf(),lastIndexOf() 已覆蓋:char,char和起始索引,String,String和起始索引 若自變量未在這個String裡找到,則返回-1;否則返回自變量開始處的位置索引。lastIndexOf()可從終點開始回溯搜索
substring() 已覆蓋:起始索引,起始索引和結束索引 返回一個新的String對象,其中包含了指定的字符子集
concat() 想連結的String 返回一個新String對象,其中包含了原始String的字符,並在後面加上由自變量提供的字符
relpace() 要查找的老字符,要用它替換的新字符 返回一個新String對象,其中已完成了替換工作。若沒有找到相符的搜索項,就沿用老字串
toLowerCase(),toUpperCase() 無 返回一個新String對象,其中所有字符的大小寫形式都進行了統一。若不必修改,則沿用老字串
trim() 無 返回一個新的String對象,頭尾空白均已刪除。若毋需改動,則沿用老字串
valueOf() 已覆蓋:object,char[],char[]和偏移以及計數,boolean,char,int,long,float,double 返回一個String,其中包含自變量的一個字符表現形式
Intern() 無 為每個獨一無二的字符順序都產生一個(而且只有一個)String句柄
可以看到,一旦有必要改變原來的內容,每個String方法都小心地返回了一個新的String對象。另外要注意的一個問題是,若內容不需要改變,則方法只返回指向原來那個String的一個句柄。這樣做可以節省存儲空間和系統開銷。
下面列出有關StringBuffer(字串緩沖)類的方法:
方法 自變量,覆蓋 用途
構建器 已覆蓋:默認,要創建的緩沖區長度,要根據它創建的String 新建一個StringBuffer對象
toString() 無 根據這個StringBuffer創建一個String
length() 無 StringBuffer中的字符數量
capacity() 無 返回目前分配的空間大小
ensureCapacity() 用於表示希望容量的一個整數 使StringBuffer容納至少希望的空間大小
setLength() 用於指示緩沖區內字串新長度的一個整數 縮短或擴充前一個字符串。如果是擴充,則用null值填充空隙
charAt() 表示目標元素所在位置的一個整數 返回位於緩沖區指定位置處的char
setCharAt() 代表目標元素位置的一個整數以及元素的一個新char值 修改指定位置處的值
getChars() 復制的起點和終點,要在其中復制的數組以及目標數組的一個索引 將char復制到一個外部數組。和String不同,這裡沒有getBytes()可供使用
append() 已覆蓋:Object,String,char[],特定偏移和長度的char[],boolean,char,int,long,float,double 將自變量轉換成一個字串,並將其追加到當前緩沖區的末尾。若有必要,同時增大緩沖區的長度
insert() 已覆蓋,第一個自變量代表開始插入的位置:Object,String,char[],boolean,char,int,long,float,double 第二個自變量轉換成一個字串,並插入當前緩沖區。插入位置在偏移區域的起點處。若有必要,同時會增大緩沖區的長度
reverse() 無 反轉緩沖內的字符順序
最常用的一個方法是append()。在計算包含了+和+=運算符的String表達式時,編譯器便會用到這個方法。insert()方法采用類似的形式。這兩個方法都能對緩沖區進行重要的操作,不需要另建新對象。