C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#】Char.IsWhiteSpaceメソッドで指定されたUnicode文字が空白かどうかを判定する方法

C#では、Char.IsWhiteSpaceメソッドを使用することで、指定されたUnicode文字が空白文字(ホワイトスペース)であるかどうかを簡単に判定できます。このメソッドはbool型の値(True または False)を返し、文字列の解析やバリデーション処理などで頻繁に活用されます。

Char.IsWhiteSpaceメソッドとは

Char.IsWhiteSpaceは、引数として渡されたchar型の文字が空白に分類されるかどうかをチェックする静的メソッドです。以下のような文字が「空白」として判定されます。

  • 半角スペース(U+0020)
  • タブ文字(\t)
  • 改行文字(\n、\r)
  • 全角スペース(U+3000)など、Unicode規格で空白に分類される各種文字

サンプルコード1:半角スペースを判定する

まず、半角スペース文字が空白として判定されるかを確認してみましょう。

using System;
public class Demo {
   public static void Main() {
      bool res;
      char val = ' ';
      Console.WriteLine("Value = "+val);
      res = Char.IsWhiteSpace(val);
      Console.WriteLine("Is the value whitespace? = "+res);
   }
}

実行結果

上記のコードを実行すると、以下の出力が得られます。半角スペースは空白文字に該当するため、結果はTrueとなります。

Value =
Is the value whitespace? = True

サンプルコード2:英字「m」を判定する

次に、空白以外の普通の文字(ここでは「m」)を判定した場合の動作を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      bool res;
      char val = 'm';
      Console.WriteLine("Value = "+val);
      res = Char.IsWhiteSpace(val);
      Console.WriteLine("Is the value whitespace? = "+res);
   }
}

実行結果

英字の「m」は空白文字ではないため、結果はFalseになります。

Value = m
Is the value whitespace? = False

まとめ

Char.IsWhiteSpaceメソッドを使えば、1行のコードで特定の文字が空白かどうかを判定できます。ユーザー入力の前後の余分な空白を検出したり、テキストデータをトークンごとに分割したりする際に非常に便利なメソッドなので、ぜひ活用してみてください。

  1. C#で指定されたUnicode文字が英字または数字かどうかを確認する方法

    C#で指定されたUnicode文字が英字(letter)または10進数の数字(decimal digit)のいずれかに該当するかどうかを判定するには、Char.IsLetterOrDigit() メソッドを使用します。このメソッドは、引数として渡された1文字がUnicodeの「Letter」カテゴリ(大文字・小文字・タイトルケース文字など)または「DecimalDigitNumber」カテゴリに分類される場合に true を返し、それ以外の場合は false を返します。サンプルコード1:数字の場合以下は、文字 1 が英字または数字かどうかを判定する例です。using System; publ

  2. C#の書式指定文字列における「\」エスケープ文字の使い方

    C#の数値を文字列に変換する際、書式指定文字列の中にある「#」「0」「.」「,」「%」「‰(パーミル)」といった記号は、すべて書式指定子として解釈されます。これらの記号を書式指定子ではなく、そのままリテラル文字として出力したい場合は、直前にエスケープ文字であるバックスラッシュ(\)を付ける必要があります。また、「#」「0」「\」自体をエスケープ文字として扱いたくない場合も、同様にバックスラッシュでエスケープします。特に「\」を出力したいときは「\\」と記述する点に注意しましょう。サンプルコード以下の例では、「##」という文字をそのまま表示するために、それぞれの「#」の前にエスケープ文字(バック