教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

java StringBuffer類(lèi)有哪些方法?[java培訓(xùn)]

更新時(shí)間:2020年01月08日16時(shí)37分 來(lái)源:傳智播客 瀏覽次數(shù):

傳智播客


由于字符串是常量,因此一旦創(chuàng)建,其內(nèi)容和長(zhǎng)度是不可改變的。如果需要對(duì)一個(gè)字符串進(jìn)行修改,則只能創(chuàng)建新的字符串。為了便于對(duì)字符串的修改,在JDK中提供了個(gè)StringBuffer類(lèi)(也稱(chēng)字符串緩沖區(qū))。StringBuffer類(lèi)和String類(lèi)最大的區(qū)別在于它的內(nèi)容和長(zhǎng)度都是可以改變的。StringBuffer類(lèi)似一個(gè)字符容器,當(dāng)在其中添加或刪除字符時(shí),并不會(huì)產(chǎn)生新的StringBuffer對(duì)象。針對(duì)添加和刪除字符的操作,StringBuffer類(lèi)提供了一系列的方法。


方法聲明

功能描述

StringBuffer append(char c)

添加參數(shù)到StringBuffer

StringBuffer insert(int offset,String str)

將字符串中的offset位置插入字符串str

StringBuffer deleteCharAt(int index)

移除此序列指定位置的字符

StringBuffer delete(int start,int end)

刪除StringBufeer對(duì)象中指定范圍的字符和字符串序列

StringBuffer replace(int index,int end,String s)

在StringBuffer對(duì)象中替換指定的字符或字符串序列

void setCharAt(int index,char ch)

修改指定位置index處的字符序列

String toString()

返回StringBuffer緩沖區(qū)中的字符串

StringBuffer reverse()

將此字符序列用于其反轉(zhuǎn)形式取代


 
上面表中列出了StringBuffer的一系列常用方法,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)一下表中方法的具體使用。
 
public class stringbuffer01{
    public static void main(String[] args) {
        System.out.println("1、添加----------");
        add();
        System.out.println("2、刪除----------");
        remove();
        System.out.println("3、修改---------");
        alter();
    }
    public static void add(){
    StringBuffer sb=new StringBuffer();     //定義一個(gè)字符緩沖區(qū)
    sb.append("abcdefg");
    System.out.println("append添加結(jié)果:"+sb);
    sb.insert(2,"123");         //在指定位置插入字符串
    System.out.println("insert添加結(jié)果:"+sb);
}
 
    public static void remove() {
        StringBuffer sb=new StringBuffer("abcdefg");
        sb.delete(1,5);         //指定范圍刪除
        System.out.println("刪除指定位置的結(jié)果:"+sb);
        sb.deleteCharAt(2);         //指定位置刪除
        System.out.println("指定刪除位置結(jié)果:"+sb);
        sb.delete(0,sb.length());       //清除緩沖區(qū)
        System.out.println("清空緩沖區(qū)結(jié)果:"+sb);
    }
        public static void alter() {
            StringBuffer sb=new StringBuffer("abcdef");
            sb.setCharAt(1,'p');        //修改指定未知字符
            System.out.println("修改指定位置字符結(jié)果:"+sb);
            sb.replace(1, 3, "qq");
            System.out.println("替換指定未知字符(串)結(jié)果:"+sb);
            System.out.println("字符串反轉(zhuǎn)結(jié)果:"+sb.reverse());
    }
}
 

 
運(yùn)行結(jié)果如下圖:

StringBuffer類(lèi)
 
 
上面案例中涉及到StringBuffer類(lèi)的很多方法,其中append()和insert(方法是最常用的,并且這兩個(gè)方法有很多重載形式,它們都用于添加字符。不同的是,append()方法始終將這些字符添加到緩沖區(qū)的末尾,而insert()方法則可以在指定的位置添加字符另外,例程中的delete()方法用于刪除指定位置的字符,setCharAt()和replace()方法用于替換指定位置的字符,這幾個(gè)方法都非常簡(jiǎn)單,在此就不再贅述了。
 
StringBuffer類(lèi)和String類(lèi)有很多相似之處,初學(xué)者在使用時(shí)很容易混淆。接下來(lái)針對(duì)這兩個(gè)類(lèi)進(jìn)行對(duì)比,簡(jiǎn)單歸納一下兩者的不同,具體如下:
 

1、String類(lèi)表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長(zhǎng)度都是無(wú)法改變的。而StringBuffer表示字符容器,其內(nèi)容和長(zhǎng)度都可以隨時(shí)修改。在操作字符串時(shí),如果該字符串僅用于表示數(shù)據(jù)類(lèi)型,則使用 String類(lèi)即可,但是如果需要對(duì)字符串中的字符進(jìn)行增刪操作,則使用 StringBuffer類(lèi)。

2、String類(lèi)覆蓋了Object類(lèi)的equals()方法,而StringBuffer類(lèi)沒(méi)有覆蓋Object類(lèi)的equals()方法,具體示例如下 

String s1=new String("abc");
String s2=new String("abd");
System.out.println(s1.equals(s2));          //打印結(jié)果為true
StringBuffer sb1=new StingBuffer("abc");
StringBuffer sb2=new StringBuffer("abc");
System.out.println(sb1.equeals(sb2));       //打印結(jié)果為false

 


String類(lèi)對(duì)象可以用操作符+進(jìn)行連接,而 String Buffer類(lèi)對(duì)象之間不能,具體例如下:

String s1="a";
String s2="b";
String s3=s1+s2;        //合法
System.out.println(s3); //打印輸出ab
StringBuffer sb1=new StringBuffer("a");
StringBuffer sb2=new StringBuffer("b");
StringBuffer sb3=sb1+sb2;           //編譯出錯(cuò)
 

猜你喜歡:

Java String類(lèi)的操作匯總
java基礎(chǔ)教程下載
0 分享到:
和我們?cè)诰€交談!