とある文字列があり、特定の文字列を削除したいという場合があります。例としては以下の様なケースです。
- 元の文字列「あいうえお」
- 削除したい文字列「いうえ」
- 削除後の文字列「あお」
今回は上記の様に、VB.NETにおける、特定の文字列を簡単に削除する方法を紹介します。
Replaceメソッドを使用して、指定した文字列を削除する
指定した文字列を削除する方法として、StringクラスのReplaceメソッドを使用する方法があります。Replaceメソッドは文字を置換する場合に用いるメソッドですが、置換後の文字列を「””」(ブランク)にすれば削除と同じ結果になります。
実行例として、以下のフォームを作成してみました。
以下のソースコードは実行ボタン押下時のイベントの記述です。
Private Sub cmdShiteimojiDelete_Click(sender As Object, e As EventArgs) Handles cmdShiteimojiDelete.Click Try '削除前の文字列「あいうえお」 Dim strBefore As String = txtBefore.Text '削除したい文字列「いうえ」 Dim strDelete As String = txtDeleteStr.Text '削除後テキストボックスに代入 txtAfter.Text = strBefore.Replace(strDelete, "") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
以下の様に、削除前と削除文字のテキストボックスにそれぞれ入力して実行ボタンを押下してみます。
すると、削除後のテキストボックスには「あいうえお」から「いうえ」が削除され、「あお」だけが残りました。
ちなみに、同じ削除対象の文字列が複数回出現すると、出現回数分だけ削除してくれます。
「あいうえおあいうえお」の中に「いうえ」が2回出現しているので、2回分削除してくれています。
Replaceメソッドで文字が削除される理由
実際に削除を実行しているReplaceメソッドの構文は以下の様になります。
文字列変数.Replace("置換対象文字", "置換後の文字")
Replaceメソッドの引数を簡単に説明すると、
- 第1引数:置換対象文字(置き換えられる文字、本記事の例では「いうえ」)
- 第2引数:置換後の文字(置き換えた後の文字、本記事の例では「””」)
ということです。Replaceメソッド本来の目的は文字列の置換ですが、置換後の文字をブランクに指定すれば、削除したことと同じ意味になることを利用した方法です。
Replaceメソッドで文字列を削除する場合の注意点
とても簡単で便利な方法なのですが、1つだけ注意点があります。指定した並びの文字列しか削除してくれないという点です。
本記事の例だと、「あいうえお」の中から「いうえ」という文字列を削除しています。しかし、「あえいうお」という並びの場合、「いうえ」という文字列を削除しようとしても削除できません。
Replaceメソッドを使用して文字列を削除する場合、指定した並びの文字列のみ削除することに注意して使用して下さい。
編集後記
Replaceメソッドを使用して文字列を削除する方法は、使用されていることが非常に多いです。単に文字列置換と見誤る場合もあるので、第2引数が「””」(ブランク)の場合は、文字列を削除していることを知っておいてください。
参考サイト
.