StringBuilderクラスで文字列を操作する [C#]

StringBuilderクラスを使用した文字列の操作方法について紹介します。
StringBuilderクラスを使用すると文字列の操作を高速に処理できる場合があります。

文字列を追加する

文字列を追加するにはAppendメソッドを使用します。

Appendメソッドは追加する文字列の位置を指定して追加することもできます。

複合書式指定文字列を処理することで返される文字列を追加する

複合書式指定文字列を指定して文字列を追加するにはAppendFormatメソッドを使用します。

指定した1行の文字列を追加する(文字列の末尾に改行を付加して追加する)

文字列を追加して改行するにはAppendLineメソッドを使用します。

Appendメソッドの引数を省略すると改行のみ追加されます。

メモリに格納できる最大文字数を取得/設定する

メモリに格納できる最大文字数を取得、または設定するにはCapacityプロパティを使用します。

クリアする

StringBuilderオブジェクトをクリアするにはClearメソッドを使用します。

指定した位置にある文字をChar配列の指定した位置にコピーする

指定した位置(セグメント)にある文字をChar配列の指定した位置(セグメント)にコピーするにはCopyToメソッドを使用します。

容量が指定した値以上になるようにする

StringBuilderオブジェクトの容量が指定した値以上になるようにするにはEnsureCapacityメソッドを使用します。

指定した位置に文字列を挿入する

指定した位置に文字列を挿入するにはInsertメソッドを使用します。

Insertメソッドでは指定した文字位置に指定した回数挿入することもできます。

長さを取得する

StringBuilderオブジェクトの長さを取得するにはLengthプロパティを使用します。

最大容量を取得する

StringBuilderオブジェクトの最大容量を取得するにはMaxCapacityプロパティを使用します。

指定した範囲の文字列を削除する

指定した範囲の文字列を削除するにはRemoveメソッドを使用します。

指定した文字列を置換する

指定した文字列を置換するにはReplaceメソッドを使用します。

文字列(string)に変換する

文字列(string型のオブジェクト)に変換するにはToStringメソッドを使用します。

サンプルプログラム

Windowsフォームアプリケーションを作成し、StringBuilderと+演算子を使用して文字列を結合するのにかかった時間を表示するサンプルプログラムの実装例を記載します。

ユーザーインターフェース

フォームのインターフェースは次のようにします。

StringBuilderを使用したサンプルフォームのデザイン

フォームの1段目に結合する文字列を入力するテキストボックス(TextBox)と、結合する回数を指定するテキストボックス(NumericUpDown)を配置します。
フォームの2段目にStringBuilderクラスを使用して文字列を結合するボタン(Buttonと実行結果を表示するテキストボックス(TextBox)を配置します。
フォームの2段目には+演算子を使用して文字列を結合するボタン(Button)と実行結果を表示するテキストボックス(TextBox)を配置します。

ソースコード

サンプルの実行

作成したプログラムを実行します。

StringBuilderを使用したサンプルフォーム起動時

ボタンをクリックするとStringBulderクラスまたは+演算子を使用した文字列の結合処理の実行時間が表示されます。

StringBuilderを使用したサンプルフォームの実行結果

+演算子を使用した処理よりもStringBulderクラスを使用した処理の方が格段に速いのが分かりました。