可能性のある複製:
C#正規表現:「a-z」および「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
}
しかし、単純な目的のためにはあまりにも多くの線が必要だと思います。もっと簡単な方法、まだ習得していない方法があると思います。
for loop
これで :
errorCounter = Regex.Matches(yourstring,@"[a-zA-Z]").Count;
Regex
クラスを使用することを忘れないでください、using System.Text.RegularExpressions;
インポート中
どうですか:
//true if it doesn't contain letters
bool result = hello.Any(x => !char.IsLetter(x));
RegExを使用できます。
Regex.IsMatch(hello, @"^[a-zA-Z]+$");
気に入らない場合は、LINQを使用できます。
hello.All(Char.IsLetter);
または、文字をループしてisAlphaを使用できます。
Char.IsLetter(character);
正規表現 を探すことができます
Regex.IsMatch(str, @"^[a-zA-Z]+$");
最小限の変更の場合:
for(int i=0; i<str.Length; i++ )
if(str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
errorCount++;
少なくとも速度が問題ではなく、実際の正確なカウントが本当に必要ない場合は、正規表現を使用できます。
正規表現を使用してchar配列に変換する必要はありません
if(Regex.IsMatch("yourString",".*?[a-zA-Z].*?"))
{
errorCounter++;
}