StringBuilderクラス
appendメソッド
引数の値を、自身の文字列の末尾に追加します。
append
目次
1. appendメソッド
appendメソッドは、引数の文字列を、インスタンス自身の値の末尾に追加するメソッドです。
戻り値は、インスタンス自身です。
したがって、必ずしも戻り値を受ける必要はありません。
public StringBuilder append(String str)
public StringBuilder append(char[] str)
public StringBuilder append(StringBuffer sb)
普通に考えれば
追加するのは Stringだろう。
2.サンプルコード
StringBuilderクラスのインスタンス 「sb1」に、文字列を次々に append します。
途中、変数「sb2」と、インスタンスを共有して、動作を確認しました。
//Sample03_01.java
class Sample03_01{
public static void main(String[] args){
StringBuilder sb1 = new StringBuilder();
sb1.append("緑間です。");
System.out.println("sb1: " + sb1.toString());
sb1.append("青峰です。");
System.out.println("sb1: " + sb1.toString());
System.out.println("--------------");
StringBuilder sb2 = sb1.append("赤司です。");
System.out.println("sb1: " + sb1.toString());
System.out.println("sb2: " + sb2.toString());
System.out.println("--------------");
//sb1 だけ append(紫原)
sb1.append("紫原どこ行った?");
System.out.println("sb1: " + sb1.toString());
System.out.println("sb2: " + sb2.toString());//sb2 にも反映!
}
}
コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample03_01.java
ws>java Sample03_01
sb1: 緑間です。
sb1: 緑間です。青峰です。
--------------
sb1: 緑間です。青峰です。赤司です。
sb2: 緑間です。青峰です。赤司です。 //戻り値 sb2 も同じ値
-------------- //sb1 だけ append(紫原)
sb1: 緑間です。青峰です。赤司です。紫原どこ行った?
sb2: 緑間です。青峰です。赤司です。紫原どこ行った? //sb2 にも反映!
なるほど。
戻り値を変数で受ける必要は
あんまりないっスね。
そう。
そこが Stringクラスとの違いだ。
StringBuilderは自身の値を変更できる。
戻り値を別のインスタンスとして扱いたい場合には、
sb2 = new StringBuilder(sb2);
などとして、再度インスタンス化するといいでしょう。
お疲れ様でした。