StringBuffer對象的append方法介紹

關於StringBuffer對象的append方法介紹,在Ivor Horton所著的《Java 2 入門經典(JDK 5)》(英文名:Beginning Java 2,JDK 5 Edition)中第4章數組和字符串講解中,第4.4小節(向StringBuffer對象增加其他內容)介紹了用append()方法追加子串的功能。原文提供例子如下:

    StringBuffer buf=new StringBuffer("Hard ");

    String aString = "Waxworks";

    buf.append(aString,3,4);

原文說明:這個操作將aString的從索引位置3開始的由四個字符組成的子串追加到StringBuffer對象buf中。然後buf對象就會包含字符 串"Hard work"。

 

請注意,這個代碼的實際運行結果是: buf對象包含的字符串爲"Hard w"。

根據運行結果分析,StringBuffer對象的append()方法的參數,如果是String類型,那麼,後面取子串的操作實際是從索引3開始,取值到索引4之前的串。如果append的語句改成 buf.append(aString,3,3); ,那麼沒有添加aString的子串,即 buf包含的字符實際還是"Hard "。如果此語句再改成 buf.append(aString3,2); ,那麼系統會拋出"IndexOutOfBoundsException"的異常!

 

但是,如果append()的參數是字符數組(char[]),那麼結果就如原文所述,buf將包含串"Hard work". 代碼如下:

    StringBuffer buf=new StringBuffer("Hard ");

    char[] text ={'W','a','x','w','o','r','k','s'};

    buf.append(text ,3,4);   // buf包含串"Hard work" 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章