【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メソッドは文字列の先頭、末尾に付いている空白文字を削除することができます。使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
info@sss-lab.com

目次