char型は.NET型でSystem.Char型であることは、すでに第8章で解説しました。char型は、構造体で定義されています。C#の構造体は、C/C++の構造体とは全く異なるものなので注意してください。どちらかというと扱いはクラスに似ています。
静的メンバは
構造体名.メンバ名でアクセスできるのはクラスと同じです。この章では実際のプログラミングで役立ちそうな静的メソッドをいくつか紹介します。Is何とかメソッドが多数定義されています。
public static bool IsDigit (
char c
)
cが10進の数字かどうかを調べます。そうならtrue、違うならfalseが返されます。
public static bool IsLetter (
char c
)
cがアルファベット文字かどうかを調べます。
public static bool IsLower (
char c
)
cが小文字かどうかを調べます。
public static bool IsUpper (
char c
)
cが大文字かどうかを調べます。
public static bool IsNumber (
char c
)
cが数字かどうかを調べます。
public static bool IsPunctuation (
char c
)
cが区切り文字かどうかを調べます。
public static bool IsSeparator (
char c
)
cが区切り文字かどうかを調べます。あれ、IsPunctuationとどう違うの?
サンプルを見ると少しわかると思います。
public static bool IsSymbol (
char c
)
cがシンボルかどうかを調べます。これらのメソッドには、
IsXXXX(string s, int index)という別バージョンが存在します。文字列sの文字位置index(先頭文字が0)の文字種について調べます。
では、サンプルを見てみましょう。
// char01.cs
using System;
class char01
{
public static void Main()
{
char a = '1', b = '=', c = 'c';
Console.WriteLine("a は制御文字か--{0}", char.IsControl(a));
Console.WriteLine("a は10進の数字か---{0}", char.IsDigit(a));
Console.WriteLine("a はアルファベット文字か---{0}", char.IsLetter(a));
Console.WriteLine("a は数字か---{0}", char.IsNumber(a));
Console.WriteLine("b は算術記号などの記号か---{0}", char.IsSymbol(b));
Console.WriteLine("c は大文字か---{0}", char.IsUpper(c));
Console.WriteLine();
string str = "ab, 01+=";
Console.WriteLine(char.IsLower(str, 0));
Console.WriteLine(char.IsLetter(str, 1));
Console.WriteLine(char.IsPunctuation(str, 2));
Console.WriteLine(char.IsSeparator(str, 3));
Console.WriteLine(char.IsDigit(str, 4));
Console.WriteLine(char.IsNumber(str, 5));
Console.WriteLine(char.IsSymbol(str, 6));
Console.WriteLine(char.IsSymbol(str, 7));
}
}
実行結果は、次のようになります。
Update 17/Aug/2006 By Y.Kumei