記事内に広告が含まれています。

【VB.NET】文字列から余分な空白を削除する方法

VB.NETにおける、文字列から余分な空白を削除する方法です。

【スポンサーリンク】

余分な空白を削除する方法

VB.NETにおいて、余分な空白を削除する方法は以下の3つです。

  • Trimメソッド
  • TrimStartメソッド
  • TrimEndメソッド

上記3つのメソッドはそれぞれ用途が違いますので、順に説明します。例として、ボタンを押下すれば空白を削除する簡単なフォームを作成しました。

f:id:neko_britannia:20200606194351j:plain

以降のソースコードは実行ボタン押下イベントの直下に記載したものになります。

Trimメソッド

文字列の前後にある空白を削除してくれるメソッドです。Stringクラスに用意されています。

Private Sub cmdBlancDelete_Click(sender As Object, e As EventArgs) Handles cmdBlancDelete.Click
    Try
        Dim strBefore As String = txtBefore.Text

        '文字列の前後の空白を削除
        txtAfter.Text = strBefore.Trim()

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

上記ソースコードを実際に実行してみます。

f:id:neko_britannia:20200606194709j:plain

上図は実行前の状態です。文字列の前後に空白が入っていることが分かる様に選択状態にしています。上図の状態で実行ボタンを押下します。

f:id:neko_britannia:20200606195131j:plain

実行ボタンを押下すると、文字列の前後の空白が削除されました。これがTrimの機能です。「文字列の前後の空白」と書きましたが、文字列の間に空白が入っていた場合、間の空白は削除されません。

f:id:neko_britannia:20200606195355j:plain

f:id:neko_britannia:20200606195506j:plain

文字列の間に空白を入れてTrimメソッドを実行すると、上図の様に、文字列の間の空白は残り、文字列の前後の空白のみ削除されます。

TrimStartメソッド

文字列の先頭にある空白を削除してくれるメソッドです。Stringクラスに用意されています。

Private Sub cmdBlancDelete_Click(sender As Object, e As EventArgs) Handles cmdBlancDelete.Click
    Try
        Dim strBefore As String = txtBefore.Text

        '文字列の前の空白を削除
        txtAfter.Text = strBefore.TrimStart()

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

上記ソースコードを実際に実行してみます。文字列の前後と文字列の間に空白がある状態です。実行ボタンを押下すると…

f:id:neko_britannia:20200606200616j:plain

f:id:neko_britannia:20200606200654j:plain

このように、文字列の前にある空白を削除してくれました。

TrimEndメソッド

文字列の後方にある空白を削除してくれるメソッドです。Stringクラスに用意されています。

Private Sub cmdBlancDelete_Click(sender As Object, e As EventArgs) Handles cmdBlancDelete.Click
    Try
        Dim strBefore As String = txtBefore.Text

        '文字列の後の空白を削除
        txtAfter.Text = strBefore.TrimEnd()

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

上記ソースコードを実際に実行してみます。文字列の前後と文字列の間に空白がある状態です。実行ボタンを押下すると…

f:id:neko_britannia:20200606200616j:plain

f:id:neko_britannia:20200606200957j:plain

文字列の後方の空白を削除してくれました。

【スポンサーリンク】

余分な空白を全て削除したい場合

さて、文字列の前後および文字列の間の空白を全て削除したい場合はどうでしょうか。上記の3メソッドはいずれも文字列の間の空白は残っていました。文字列の間の空白まで削除したいという場合は、Replaceメソッドを利用します。

Private Sub cmdBlancDelete_Click(sender As Object, e As EventArgs) Handles cmdBlancDelete.Click
    Try
        Dim strBefore As String = txtBefore.Text

        '文字列中の空白を削除(半角スペース)
        txtAfter.Text = Replace(strBefore, Space(1), String.Empty)

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

Replaceメソッドの置換前文字列に空白(半角スペース)を意味する「Space(1)」を指定し、置換後の文字列を「String.Empty」とすれば、文字列中の空白を削除してくれます。

f:id:neko_britannia:20200606200616j:plain

f:id:neko_britannia:20200606202414j:plain

この様に、全ての空白が削除されました。上記の例は半角スペースのみ削除なので、全角スペースも削除したい場合は、次の様なソースコードにして下さい。

Private Sub cmdBlancDelete_Click(sender As Object, e As EventArgs) Handles cmdBlancDelete.Click
    Try
        Dim strBefore As String = txtBefore.Text

        '文字列中の空白を削除(半角スペース)
        txtAfter.Text = Replace(strBefore, Space(1), String.Empty)

        '文字列中の空白を削除(全角スペース)
        txtAfter.Text = Replace(strBefore, Chr(-32448), String.Empty)

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

半角スペースと全角スペースの両方を削除してくれます。

【スポンサーリンク】

編集後記

余分な空白を削除する場合は、用途に合わせて削除しましょう。尚、Trimメソッド、TrimStartメソッド、TrimEndメソッドは半角でも全角でも空白を削除してくれます。

【スポンサーリンク】

関連記事

【VB.NET】指定した文字列を簡単に削除する方法(Replaceメソッド)
とある文字列があり、特定の文字列を削除したいという場合があります。例としては以下の様なケースです。 元の文字列「あいうえお」 削除したい文字列「いうえ」 削除後の文字列「あお」 今回は上記の様に、VB.NETにおける、特定の文字列を簡単に削...
【スポンサーリンク】

参考サイト

String.Trim メソッド (System)
現在の文字列から、指定した文字セットを先頭および末尾の出現箇所からすべて削除した新しい文字列を返します。
String.TrimStart メソッド (System)
System 名前空間の System.String.TrimStart についての詳細をご確認ください。
String.TrimEnd メソッド (System)
現在の文字列から末尾の空白文字をすべて削除します。

.