>>321
それ文字列が長ければreplaceのための線形探索がネックになるはずで、StringBuilderは直接関係ないでしょ
簡単に効率を改善するんなら、全キーワードのうち最長のキーワードの文字数と同じサイズのバッファを持っといて
そこに対して置換をかけりゃいい
もちろんその置換結果を最終出力の文字列として連結していくところはStringBuilderを使うべきだけど