VB.NETにおける、文字列から余分な空白を削除する方法です。
余分な空白を削除する方法
VB.NETにおいて、余分な空白を削除する方法は以下の3つです。
- Trimメソッド
- TrimStartメソッド
- TrimEndメソッド
上記3つのメソッドはそれぞれ用途が違いますので、順に説明します。例として、ボタンを押下すれば空白を削除する簡単なフォームを作成しました。
以降のソースコードは実行ボタン押下イベントの直下に記載したものになります。
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
上記ソースコードを実際に実行してみます。
上図は実行前の状態です。文字列の前後に空白が入っていることが分かる様に選択状態にしています。上図の状態で実行ボタンを押下します。
実行ボタンを押下すると、文字列の前後の空白が削除されました。これがTrimの機能です。「文字列の前後の空白」と書きましたが、文字列の間に空白が入っていた場合、間の空白は削除されません。
文字列の間に空白を入れて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
上記ソースコードを実際に実行してみます。文字列の前後と文字列の間に空白がある状態です。実行ボタンを押下すると…
このように、文字列の前にある空白を削除してくれました。
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
上記ソースコードを実際に実行してみます。文字列の前後と文字列の間に空白がある状態です。実行ボタンを押下すると…
文字列の後方の空白を削除してくれました。
余分な空白を全て削除したい場合
さて、文字列の前後および文字列の間の空白を全て削除したい場合はどうでしょうか。上記の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」とすれば、文字列中の空白を削除してくれます。
この様に、全ての空白が削除されました。上記の例は半角スペースのみ削除なので、全角スペースも削除したい場合は、次の様なソースコードにして下さい。
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メソッドは半角でも全角でも空白を削除してくれます。
関連記事
参考サイト
.