C# 数字和字母

Posted

技术标签:

【中文标题】C# 数字和字母【英文标题】:C# numbers and Letters 【发布时间】:2011-02-08 11:59:38 【问题描述】:

我需要我的应用程序根据所选文本是否包含字母或除数字以外的任何内容执行操作。不要这样做。

如何判断字符串是字母还是数字?

很简单,但我不会写这段代码。

【问题讨论】:

请说得更具体一些,你想知道它是只包含字母还是只包含数字? @atticae - 很难说,但在我们的答案中,他可能会找到他可以使用的东西。 【参考方案1】:

你可以尝试这样做:

string myString = "100test200";
long myNumber;
if( long.TryParse( myString, out myNumber )
  //text contains only numbers, and that number is now put into myNumber.
  //do your logic dependent of string being a number here
else
  //string is not a number. Do your logic according to the string containing letters here

如果您想查看字符串是否包含一个或多个数字,而不是所有数字,请改用此逻辑。

if (myString.Any( char.IsDigit ))
  //string contains at least one digit
else
  //string contains no digits

【讨论】:

long.Parse 如果数字大于 2^63 将失败 @Manu - 如果是这样,他可以使用我的第二种方法。如果他确实需要将号码用于任何事情,我的第一种方法很好,我猜他这样做是因为他试图弄清楚他的号码中是否有一个字母:) 谢谢。这就是我要找的。但是如果 myString 是小数,它会认为它是字母,还有另一个问题。 对不起,如果不是整数,我想说 @Acid - 我不是 100% 确定你在这里的意思。你能给我一个示例字符串,以及你需要的结果,然后我会帮助你。【参考方案2】:
static bool IsNumeric(string str)

  foreach(char c in str)
    if(!char.IsDigit(c))
       return false;
  return true;

【讨论】:

或简称str.All(char.IsDigit); ;)【参考方案3】:

你可以用正则表达式来实现这一点

string str = "1029";
if(Regex.IsMatch(str,@"^\d+$"))...

【讨论】:

以上是关于C# 数字和字母的主要内容,如果未能解决你的问题,请参考以下文章

C#正则表达式判断是不是是数字,是不是含有中文,是不是是数字字母组合

c#窗体编写程序,统计所给字符串中字母的个数、数字的个数和大写字母的个数,各种控件?

C#写程序,统计所给字符串中字母的个数、数字的个数和大写字母的个数

使用 C# 使用正则表达式过滤掉字母 [重复]

在 C# 中使用字母和数字 (code="BC1") 属性对 XML 进行排序

C#单纯的字母数字ASCII码转换