StringBuilderに格納されている文字数はLengthプロパティで取得できます。 String.Lengthプロパティとは異なり、StringBuilderではLengthプロパティを設定することによって文字列の長さを変更することができます。 また、Lengthプロパティを0にすることにより、バッファの内容をクリアすることが出来ます。
Lengthを現在の長さより小さくすると文字列が切り詰められ、逆に大きくした場合はヌル文字(U+0000)で埋められます。
StringBuilder.Lengthプロパティを使って文字列の長さを変更する
using System;
using System.Text;
class Sample {
static void Main()
{
var sb = new StringBuilder("The quick brown fox jumps over the lazy dog");
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
// 長さを18文字分短くする
sb.Length -= 18;
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
// 長さを0にする(バッファをクリアする)
sb.Length = 0;
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
// 文字列を追加
sb.Append("The quick brown fox");
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
// 長さを30にする
sb.Length = 30;
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
// ヌル文字を'.'に置換
sb.Replace('\0', '.');
Console.WriteLine("<{0}> (Length={1})", sb, sb.Length);
}
}
実行結果
<The quick brown fox jumps over the lazy dog> (Length=43) <The quick brown fox jumps> (Length=25) <> (Length=0) <The quick brown fox> (Length=19) <The quick brown fox> (Length=30) <The quick brown fox...........> (Length=30)