【C#入門】Trimで文頭、文末の文字を削除(TrimStart、TrimEndも解説)

String.Trimメソッドって使ってますか?

C#ではStringクラスのTrimメソッドを使うと、文字列の先頭と末尾に付いている余計な空白文字や指定文字を削除することができます。この記事では、Trimメソッドについて

  • Trimの使い方
  • TrimStartの使い方
  • TrimEndの使い方
  • 指定文字を削除する方法
  • 正規表現で削除する方法

など基本的な内容から、応用的な内容についても解説していきます。今回はTrimメソッドについて、使い方をわかりやすく解説します!

目次

Trimの使い方

StringクラスのTrimメソッドは、文字列の先頭と末尾に付いている空白文字や指定文字を削除するために使います。Trimメソッドは引数を指定せずに使うと、半角、全角のスペース文字、タブ文字、改行文字などを削除します。

サンプルコードで確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "\t 侍エンジニア \r\n";
      
      Console.WriteLine(str.Trim());
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア

TrimStartの使い方

Trimメソッドに対して、先頭の空白文字のみを削除する場合はTrimStartメソッドを使います。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "\t 侍エンジニア \r\n";
      
      Console.WriteLine(str.TrimStart());
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア 

先頭のタブ文字や半角スペースは削除されますが、末尾の全角スペースと改行文字は削除されていません。

TrimEndの使い方

末尾の空白文字のみを削除する場合はTrimEndメソッドを使います。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "\t 侍エンジニア \r\n";
      
      Console.WriteLine(str.TrimEnd());
      Console.ReadKey();
    }
  }
}

実行結果:

         侍エンジニア

末尾の全角スペースと改行文字は削除されますが、先頭のタブ文字や半角スペースは削除されていません。

指定文字を削除する方法

TrimメソッドやTrimStartメソッド、TrimEndメソッドは引数で指定した文字を削除することができます。メソッドの引数には複数の文字を指定することができます。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "@:;侍エンジニア@:;";
      
      Console.WriteLine(str.Trim('@', ':', ';'));
      Console.WriteLine(str.TrimStart('@', ':', ';'));
      Console.WriteLine(str.TrimEnd('@', ':', ';'));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア
侍エンジニア@:;
@:;侍エンジニア

正規表現で削除する方法

Trimメソッドでは正規表現を使って削除することはできません。正規表現とはいくつかの文字列を一つの形式でまとめて表現するための表現方法のことです。主な正規表現については下記のとおりになります。

記号記号の説明例の説明
.任意の1文字。改行文字は除く。.+任意の文字列
*直前の1文字の0回以上の繰り返しと一致hoge*hogeもしくはhogee...と一致
^行の先頭^[0-9]行頭が数字
$行の末尾^.{10}$10文字の行
[ ]カッコ内の任意の1文字と一致。「-」で範囲指定可。[a-z]小文字のアルファベット1文字と一致
[^ ]カッコ内の任意の1文字と不一致。「-」で範囲指定可。[^A-Z]大文字のアルファベット以外
+直前の文字の1個以上の繰り返しと一致hoge+hogee...と一致
?直前の文字の0または1文字と一致hoge?eと一致
{ }カッコ内の数値の繰り返しと一致{n}直前の文字のn個の繰り返しと一致
{,n}直前の文字のn個以下の繰り返しと一致
{m,}直前の文字のm個以上の繰り返しと一致
{m,n}直前の文字のm個以上、n個以下の繰り返しと一致
|直前、直後どちらかのパターンに一致hoge|piyohogeまたはpiyo
( )カッコ内をグループ化。マッチした内容は参照可。

正規表現を使って削除するには、System.Text.RegularExpressions.RegexクラスのReplaceメソッドを使って空文字(「””」)に置き換えます。

using System;
using System.Text.RegularExpressions;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "@:;侍エンジニア@:;";
      string pattern = "[@:;]";
      
      Console.WriteLine(Regex.Replace(str, pattern, ""));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍エンジニア

StringBuilderで文字列を削除する方法

文字列を削除するには、StringBuilderクラスのRemoveメソッドを使う方法もあります。次の記事で詳しい使い方を解説しているので、ぜひ確認してみてください。

Replaceで空文字に置換して削除する方法

Replaceメソッドで空文字に置換して、指定した文字を削除することもできます。詳しい使い方は次の記事で確認してください。

文字列の使い方総まとめ

文字列の様々な使い方は次の記事でまとめて解説しているので、その他の文字列の使い方に興味がある方はぜひ確認してください。

まとめ

ここでは、Trimメソッドについて説明しました。Trimメソッドは文字列の先頭、末尾に付いている空白文字を削除することができます。使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次