C# Regex的替代方法:如何使用Isleter或IsDigit方法并指定所需的字母和数字数量

C# Regex的替代方法:如何使用Isleter或IsDigit方法并指定所需的字母和数字数量,c#,C#,我有这样一种方法: 除了我想指定用户可以输入的字母数外,这项功能运行良好: 示例:1234QAZWSX。在这个例子中,我需要X个字母和X个数字,顺序并不重要 我不想使用正则表达式 注意:Validated是调用变量的类的名称IsValidNumberLetter。通过这种方式,我可以在整个程序中使用变量来验证数字字母 使用上述方法是否可行 感谢您的输入。谢谢我的朋友,我能够添加子字符串方法,因此前4个字符是字母,后8个是数字。这太棒了。有了你的例子,我可以玩玩这个。再次感谢@UnserageGu

我有这样一种方法:

除了我想指定用户可以输入的字母数外,这项功能运行良好: 示例:1234QAZWSX。在这个例子中,我需要X个字母和X个数字,顺序并不重要

我不想使用正则表达式

注意:Validated是调用变量的类的名称IsValidNumberLetter。通过这种方式,我可以在整个程序中使用变量来验证数字字母

使用上述方法是否可行


感谢您的输入。

谢谢我的朋友,我能够添加子字符串方法,因此前4个字符是字母,后8个是数字。这太棒了。有了你的例子,我可以玩玩这个。再次感谢@UnserageGuy哦,对了,你想要前4个字符的字母,然后是接下来的8位数字?修正了。我是我的错,应该解释得更好。我注意到这一切。但我可以输入字符示例:!@。我可能可以玩这个。不想再拖下去了。@unserageguy刚刚测试过它,对于
“!@”
,它返回false。太好了,是的,它可以工作。非常感谢你!!你知道我们应该切换屏幕名称,我写代码的方式对一个不懂的人来说太普通了。:)再次感谢,现在我有了一种在Regex之外做事情的方法。你能解释一下为什么Regex是禁区吗?它似乎是专门为这类工作设计的工具。这只是一种学习练习吗?是的,这是练习,不是家庭作业。我希望能够使用不同的方法。大多数时候,我看到人们直接选择正则表达式。我读过几本书,但甚至不知道@newStackExchange下面发布的一些方法。
public static bool IsValid(string source)
{
    //this will not affect the original as strings are immutable
    source = source.Trim(); 
    if (source.Length != 12) return false;
    return source.Take(4).All(char.IsLetter)
         && source.Skip(4).All(char.IsDigit);
}
public static bool IsValid(string source)
{
    //this will not affect the original as strings are immutable
    source = source.Trim(); 
    if (source.Length != 12) return false;
    return source.Take(4).All(char.IsLetter)
         && source.Skip(4).All(char.IsDigit);
}