0

正規表現を使用せずに文字が文字か数字かを識別する他のオプションはありますか? これが私のコードです:

void IdentifyChar(char Chr)
{
    switch (Chr)
    {
        case // A..Z or A-Z
    }
}

少し前にこのコードを含むプロジェクトをダウンロードしたので、それが可能であることはわかっています。何か案が?

4

2 に答える 2

5

使用できます

Char.IsLetterOrDigit(Chr)

その他については、 http://msdn.microsoft.com/en-us/library/424s1h3zを参照してください。Char Methods

于 2012-07-14T15:21:30.270 に答える
2

C# は、 switch内の範囲ベースのケースをサポートしていませんが、現在の目標以外に使用できる代替手段がいくつかあります。

いくつかのアプローチを以下に説明します。

 if (Char.ToLower (Chr) >= 'a' && Char.ToLower (Chr) <= 'z') {
   ...

 } else
 if (Chr >= '0' && Chr <= '9') {
   ...

 } else {
   ...
 }

 if (Char.IsLetter (Chr)) {
    ...

 } else
 if (Char.IsDigit (Chr)) {
    ...

 } else
 {
   ...
 }


category以下のこのリンクをたどることで、特定のキャラクターが何に存在するかを調べるためのさらに多くの方法 (および関連情報) を見つけることができます。

 - msdn.microsoft.com - Char 構造体 (システム)


推奨されません:スイッチを使用する一種の「範囲ベース」の方法がありますが、範囲を指定する必要はありませんが、以下のように特定のケースに関連付けられたすべての値が含まれます。

switch (Chr) {
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    ... 
    break;

  default:
    ...
}

于 2012-07-14T15:25:32.740 に答える