スポンサーリンク

【C#】文字列の空白を削除する方法(Trim・TrimStart・TrimEnd・Replace)

C#で、文字列の空白を削除する方法です。

スポンサーリンク

空白を削除する方法

C#において、文字列内の空白を削除する場合、次の4つのメソッドを使用すれば、文字列内にある空白(半角スペース・全角スペース)を削除することが出来ます。

  • Trim…文字列の前後にある空白を全て削除
  • TrimStart…文字列の左(先頭)にある空白を全て削除
  • TrimEnd…文字列の右(最後)にある空白を全て削除
  • Replace…文字列中の全ての空白を削除

それぞれの役割が少し違いますので、サンプルコードを交えて解説します。

サンプルとして次の画面を用意しました。

f:id:neko_britannia:20211105161517j:plain

この画面の仕様は、

  1. 左側のテキストボックスに文字を入力
  2. ボタンを押下して、空白文字を削除
  3. 空白文字を削除した結果を右側のテキストボックスに表示

という簡単なものです。

スポンサーリンク

Trimメソッド

Trimメソッドは、文字列の前後にある空白文字(半角スペース・全角スペース)を全て削除します。

文字列の途中にある空白文字は削除されません。

サンプルコードはこちら。

private void cmdTrim_Click(object sender, EventArgs e)
{
    try
    {
        //入力した文字を変数に代入
        string strBefore = txtTrimBefore.Text;

        //入力した文字から空白を削除して、テキストボックスにセット
        txtTrimAfter.Text = strBefore.Trim();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message
                        , "エラー"
                        , MessageBoxButtons.OK
                        , MessageBoxIcon.Error);
    }
}

実際に実行してみましょう。

「 A B C D E 」という、各文字の前後に空白文字を入れて実行してみます。

f:id:neko_britannia:20211105161854j:plain

画面上の「Trim」ボタンを押すと、次の結果になります。

f:id:neko_britannia:20211105161945j:plain

文字列の前後にある空白文字が削除されました。

【Trimメソッドは文字列の前後の空白文字を削除する】
・Trim実行前:「 A B C D E 」←文字列の前後に空白文字がある

 ・Trim実行後:「A B C D E」←文字列の前後にある空白文字が削除された

スポンサーリンク

TrimStartメソッド

TrimStartメソッドは、文字列の左(先頭)にある空白文字(半角スペース・全角スペース)を全て削除します。

VB.NETではRTrimと呼ばれているものと機能は同じです。

文字列の途中にある空白文字や、文字列の先頭にある空白文字は削除されません。

サンプルコードはこちら。

private void cmdTrimStart_Click(object sender, EventArgs e)
{
    try
    {
        //入力した文字を変数に代入
        string strBefore = txtTrimStartBefore.Text;

        //入力した文字から空白を削除して、テキストボックスにセット
        txtTrimStartAfter.Text = strBefore.TrimStart();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message
                        , "エラー"
                        , MessageBoxButtons.OK
                        , MessageBoxIcon.Error);
    }
}

実際に実行してみましょう。

「 A B C D E 」という、各文字の前後に空白文字を入れて実行してみます。

f:id:neko_britannia:20211105162740j:plain

画面上の「TrimStart」ボタンを押すと、次の結果になります。

f:id:neko_britannia:20211105162807j:plain

文字列の前にある空白文字が削除されました。

【TrimStartメソッドは文字列の前にある空白文字を削除する】
・TrimStart実行前:「 A B C D E 」←文字列の前後に空白文字がある

 ・TrimStart実行後:「A B C D E 」←文字列の前にある空白文字が削除された

スポンサーリンク

TrimEndメソッド

TrimEndメソッドは、文字列の右(最後)にある空白文字(半角スペース・全角スペース)を全て削除します。

VB.NETではLTrimと呼ばれているものと機能は同じです。

文字列の途中にある空白文字や、文字列の末尾にある空白文字は削除されません。

サンプルコードはこちら。

private void cmdTrimEnd_Click(object sender, EventArgs e)
{
    try
    {
        //入力した文字を変数に代入
        string strBefore = txtTrimEndBefore.Text;

        //入力した文字から空白を削除して、テキストボックスにセット
        txtTrimEndAfter.Text = strBefore.TrimEnd();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message
                        , "エラー"
                        , MessageBoxButtons.OK
                        , MessageBoxIcon.Error);
    }

実際に実行してみましょう。

「 A B C D E 」という、各文字の前後に空白文字を入れて実行してみます。

f:id:neko_britannia:20211105163010j:plain

画面上の「TrimEnd」ボタンを押すと、次の結果になります。

f:id:neko_britannia:20211105163038j:plain

文字列の後ろにある空白文字が削除されました。

【TrimEndメソッドは文字列の後ろにある空白文字を削除する】
・TrimEnd実行前:「 A B C D E 」←文字列の前後に空白文字がある

 ・TrimEnd実行後:「 A B C D E」←文字列の後ろにある空白文字が削除された

スポンサーリンク

Replaceメソッド

Replaceメソッドは、文字列を置換するメソッドです。

本来は、

文字列内にあるAという文字をBに置換する

という目的で使用しますが、文字列内にある空白文字を全て削除する目的でも使用可能です。

サンプルコードはこちら。

private void cmdReplace_Click(object sender, EventArgs e)
{
    try
    {
        //入力した文字を変数に代入
        string strBefore = txtReplaceBefore.Text;

        //入力した文字から空白を削除して、テキストボックスにセット
        txtReplaceAfter.Text = strBefore.Replace(" ","").Replace(" ","");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message
                        , "エラー"
                        , MessageBoxButtons.OK
                        , MessageBoxIcon.Error);
    }
}

実際に実行してみましょう。

「 A B C D E 」という、各文字の前後に空白文字を入れて実行してみます。

f:id:neko_britannia:20211105163402j:plain

画面上の「Replace」ボタンを押すと、次の結果になります。

f:id:neko_britannia:20211105163428j:plain

文字列内にある全ての空白文字が削除されました。

【Replaceメソッドを使って、文字列内の全ての空白文字を削除する】
・Replace実行前:「 A B C D E 」←各文字の前後に半角スペースがある

 ・Replace実行後:「ABCDE」←文字列内にある全ての半角スペースが削除された

ただし、Replaceメソッドの場合は少し注意が必要です。

Trim・TrimStart・TrimEndの場合、半角スペースと全角スペースの両方を削除してくれますが、Replaceはキャラクター単位での置換のため、半角スペースと全角スペースの両方を明示的に置換する必要があります。

例えば次の様に、半角スペースの削除と全角スペースの削除のReplaceメソッドを繋げるという方法があります。

txtReplaceAfter.Text = strBefore.Replace(" ","").Replace(" ","");
スポンサーリンク

参考サイト

String.Trim メソッド (System) | Microsoft Docs

String.TrimStart メソッド (System) | Microsoft Docs

String.TrimEnd メソッド (System) | Microsoft Docs

String.Replace メソッド (System) | Microsoft Docs

スポンサーリンク

鉄道記事も書いてます!

ちょっとリフレッシュして鉄道記事も読んでみませんか?

鉄道記事バックナンバーはこちら↓

鉄道コム投稿記事一覧ページ