如何检查String是否包含从a到z的任何字母?

时间:2012-10-14 17:19:48

标签: c# windows string char

  

可能重复:
  C# Regex: Checking for “a-z” and “A-Z”

我可以使用下面的代码:

String hello = "Hello1";
Char[] convertedString = String.ToCharArray();
int errorCounter = 0;
for (int i = 0; i < CreateAccountPage_PasswordBox_Password.Password.Length; i++) {
    if (convertedString[i].Equals('a') || convertedString[i].Equals('A') .....
                            || convertedString[i].Equals('z') || convertedString[i].Equals('Z')) {
        errorCounter++;
    }
}
if(errorCounter > 0) {
    //do something
}

但我认为仅仅为了一个简单的目的需要太多的线,我相信有一种方法更加简单,我尚未掌握的方式。

6 个答案:

答案 0 :(得分:67)

怎么样:

//true if it doesn't contain letters
bool result = hello.Any(x => !char.IsLetter(x));

答案 1 :(得分:56)

用此替换for loop

errorCounter = Regex.Matches(yourstring,@"[a-zA-Z]").Count;

请务必使用Regex课程,您必须在导入中使用using System.Text.RegularExpressions;

答案 2 :(得分:14)

您可以使用RegEx:

Regex.IsMatch(hello, @"^[a-zA-Z]+$");

如果您不喜欢,可以使用LINQ:

hello.All(Char.IsLetter);

或者,您可以遍历字符,并使用isAlpha:

Char.IsLetter(character);

答案 3 :(得分:4)

您可以查找regular expression

Regex.IsMatch(str, @"^[a-zA-Z]+$");

答案 4 :(得分:1)

进行最小程度的改变:

for(int i=0; i<str.Length; i++ )
   if(str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
      errorCount++;

你可以使用正则表达式,至少如果速度不是问题,你真的不需要实际的精确计数。

答案 5 :(得分:0)

使用正则表达式 无需将其转换为char数组

if(Regex.IsMatch("yourString",".*?[a-zA-Z].*?"))
{
errorCounter++;
}