在前幾節(jié)我們學(xué)習(xí)了String字符串對(duì)象,String類(lèi)創(chuàng)建的字符串對(duì)象是不可修改的,也就是說(shuō),String字符串不能修改、刪除或替換字符串中的某個(gè)字符,即String對(duì)象一旦創(chuàng)建,其實(shí)體是不可以再發(fā)生變化的,例如:
String s = new String("我喜歡散步");
其中,"我喜歡散步"為實(shí)體,不可以再發(fā)生變化。
那么這一節(jié)我們來(lái)學(xué)習(xí)一下StringBuffer類(lèi),該類(lèi)能創(chuàng)建可修改的字符串序列,也就是說(shuō),該類(lèi)的對(duì)象的實(shí)體的內(nèi)存空間可以自動(dòng)地改變大小,便于存放一個(gè)可變的字符序列。
例如,一個(gè)StringBuffer對(duì)象調(diào)用append方法可以追加字符序列:
StringBuffer s = new StringBuffer("我喜歡");
那么,對(duì)象s可調(diào)用append方法追加一個(gè)字符串序列:
s.append("游泳");
其中,"我喜歡游泳"為實(shí)體,實(shí)體發(fā)生變化。
StringBuffer類(lèi)有三個(gè)構(gòu)造方法:
1)StringBuffer()
使用第1個(gè)無(wú)參數(shù)的構(gòu)造方法創(chuàng)建一個(gè)StringBuffer對(duì)象,那么分配給該對(duì)象的實(shí)體的初始容量可以容納16個(gè)字符,當(dāng)該對(duì)象的實(shí)體存放的字符序列的長(zhǎng)度大于16時(shí),實(shí)體的容量自動(dòng)增加,以便存放所增加的字符。StringBuffer對(duì)象可以通過(guò)length()方法獲取實(shí)體中存放的字符序列的長(zhǎng)度,通過(guò)capacity()方法獲取當(dāng)前實(shí)體的實(shí)際容量。
2)StringBuffer(int size)
使用第2個(gè)構(gòu)造方法創(chuàng)建一個(gè)StringBuffer對(duì)象,那么可以指定分配給該對(duì)象的實(shí)體的初始容量為參數(shù)size指定的字符個(gè)數(shù),當(dāng)該對(duì)象的實(shí)體存放的字符序列的長(zhǎng)度大于size個(gè)字符時(shí),實(shí)體的容量自動(dòng)增加,以便存放所增加的字符。
3)StringBuffer(String s)
使用第3個(gè)構(gòu)造方法創(chuàng)建一個(gè)StringBuffer對(duì)象,那么可以指定分配給該對(duì)象的實(shí)體的初始容量為參數(shù)字符串s的長(zhǎng)度額外再加16個(gè)字符。
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程
只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程