文字列処理

[VB.NET] Replaceで文字列を置換する方法

今回は、VB.NETのReplaceで文字列を置換する方法についてご紹介します。

Replaceとは

Replaceは、特定の文字列を探し出し、別の文字列に置き換えた新しい文字列を返す機能です。

VB.NETでは、.NET FrameworkのString.Replaceメソッドと、Microsoft.VisualBasic.Strings.Replaceメソッドの2種類が主に利用されます。

これらはいずれも元の文字列を直接変更せず、置換後の新しい文字列を生成する点に注意が必要です。

String.Replaceメソッドの基本的な使い方

String.Replaceメソッドは、VB.NETのString型が持つインスタンスメソッドです。

大文字と小文字を区別しながら、指定した文字列をすべて置換します。

メソッドのシンタックスは以下のとおりです。

以下に具体例を示します。

実行結果

Hello VB.NET

この例では、”World” が “VB.NET” に置き換えられ、新しい文字列 “Hello VB.NET” が生成されます。

なお、元の文字列 original はそのまま残るため、変更を適用する場合は置換後の戻り値を利用してください。

複数箇所の置換と大文字小文字の扱い

String.Replaceメソッドを呼ぶと、指定された文字列が見つかったすべての箇所を置換します。

大文字と小文字は区別されるため、”Hello” と “hello” は別の文字列として扱われます。

複数箇所が置換される例を示します。

実行結果

orange, banana, orange, grape

このように指定した文字列が複数見つかった場合、すべて置換対象となります。

しかし、大文字小文字は区別されるため、異なるケースの文字列は置換されない点に注意してください。

Microsoft.VisualBasic.Strings.Replaceメソッドの活用

VB.NETには、Microsoft.VisualBasic.Strings.Replaceメソッドも用意されています。

これは大文字小文字を無視した比較や、置換回数の指定など、より詳細な制御が可能です。

シンタックスは以下のとおりです。

expression は置換対象の文字列、find は検索文字列、replacement は置換後の文字列を指します。

さらに、start パラメータで検索を開始する位置、count パラメータで置換回数、compare パラメータで比較方法(大文字小文字の区別など)を指定できます。

大文字小文字を無視した置換

compareパラメータに CompareMethod.Text を指定することで、大文字小文字を区別せずに置換できます。

下記の例では、”Hello” と “hello” の両方を一度に置換しています。

実行結果

hi hi

このように、大文字小文字を意識せずに処理できるので、ユーザーからの入力や不特定の文字列を扱うシーンで役立ちます。

文字列置換時の注意点

不変性により、Replaceを使うと新たな文字列オブジェクトが生成されるため、繰り返し実行する場合はパフォーマンスに注意が必要です。

大量の文字列操作を行う場合は、StringBuilderを利用するなどの方法も検討すると良いでしょう。

置換対象が見つからない場合は何も置き換えが行われず、元の文字列がそのまま返されます。

大文字小文字の区別を柔軟に扱いたい場合は、Microsoft.VisualBasic.Strings.Replaceで CompareMethod.Text を活用してください。

まとめ

VB.NETでの文字列置換には、String.ReplaceかMicrosoft.VisualBasic.Strings.Replaceが利用できます。

用途に応じて大文字小文字や置換回数などを制御し、適切なメソッドを選択することが大切です。

文字列の不変性やパフォーマンス面にも注意しながら、目的に合わせて使い分けてみてください。