【初心者】Java質問・相談スレッド98【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0372デフォルトの名無しさん
2007/02/22(木) 20:09:22if (str == null) str = "null";
int len = str.length();
if (len == 0) return this;
int newCount = count + len;
if (newCount > value.length)
expandCapacity(newCount);
str.getChars(0, len, value, count);
count = newCount;
return this;
}
まずよくみると、append()したい文字列がnullであればnullという文字が代入される。
ここでappendするのは何かが入ったstrという文字列。よって無視される。
つぎに文字列の長さをlenに代入。
つぎに、文字列長がゼロであればそのまま自分自身を帰して終わる。
つまり、空文字列""をappend()しても特に何も変化が無いということ。
次にcountにappendしたい文字列の長さを加える。
countはゼロなのでlenが3だとするとcountは3になる。
ここでvalue.lengthとこの3とを比較する。
当然現在の配列の長さは初期値である16(value.length==16)なので何も変化は無し。
そしてStringクラスのgetCharメソッドを呼び出す。
このメソッドは、興味深いことにSystem.arrayCopy()を使ってchar[]配列を別の配列を
コピーしていることがわかる。
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
//例外処理を省略
System.arraycopy(value, offset + srcBegin, dst, dstBegin,
srcEnd - srcBegin);
}
■ このスレッドは過去ログ倉庫に格納されています