社畜ゲートウェイ

京成・京急を中心に取り上げる阪急ファンのブログです。日本一遅い速報を届けます。

MENU

【スポンサーリンク】

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

【スポンサーリンク】

f:id:neko_britannia:20200417145314j:plain

文字列から余分な空白を削除する方法です。

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

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メソッドは半角でも全角でも空白を削除してくれます。

関連記事

www.stellacreate.com

参考サイト

String.Trimメソッド

docs.microsoft.com

String.TrimStartメソッド

docs.microsoft.com

String.TrimEndメソッド

docs.microsoft.com