58
4

6 に答える 6

98

どうですか:

//true if it doesn't contain letters
bool result = hello.Any(x => !char.IsLetter(x));
于 2012-10-14T17:28:29.107 に答える
76

あなたをこれに置き換えてくださいfor loop

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

Regexクラスを使用することを忘れないusing System.Text.RegularExpressions;でください。インポートで使用する必要があります

于 2012-10-14T17:31:00.743 に答える
24

正規表現を使用できます:

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

それが気に入らない場合は、LINQ を使用できます。

hello.All(Char.IsLetter);

または、文字をループして isAlpha を使用することもできます。

Char.IsLetter(character);
于 2012-10-14T17:23:01.277 に答える
7

正規表現を探すことができます

Regex.IsMatch(str, @"^[a-zA-Z]+$");
于 2012-10-14T17:22:31.793 に答える
4

最小限の変更の場合:

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

少なくとも速度が問題ではなく、実際の正確な数が本当に必要ない場合は、正規表現を使用できます。

于 2012-10-14T17:24:13.770 に答える
3

char 配列に変換する必要のない正規表現を使用する

if(Regex.IsMatch("yourString",".*?[a-zA-Z].*?"))
{
errorCounter++;
}
于 2012-10-14T17:23:30.220 に答える