0

是否有任何其他选项可以在不使用 RegEx 的情况下识别字符是字母还是数字?这是我的代码:

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/424s1h3zChar 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 - 字符结构(系统)


不推荐:有一种使用开关的“基于范围”的方法,但它不涉及指定范围,而是指定与特定情况相关的所有值,如下所示:

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 回答