.net 2.0 - 在 C# 中定义字母的范围



我在 C# 2.0 中创建标记表程序时遇到问题,这是它的代码

Console.WriteLine("Prislogix Public School");
Console.WriteLine("nnMarksheetnn");
Console.WriteLine("Enter Student Name : ");
string name = Console.ReadLine();
Console.WriteLine("nEnter Class : ");
string cls = Console.ReadLine();
Console.WriteLine("nEnter Roll Number : ");
int roll = int.Parse(Console.ReadLine());

这是基本的写入和读取任务。我想创建的是名称的条件。例如,如果用户在名称字段中输入 123,则名称为 123。

我不希望它在名称字段中允许任何数字。 如何做到这一点?我是否必须定义字母表的 ASCII 代码范围?我认为一个做..虽然将使用循环,但我应该如何定义字母之间的范围(A 到 Z 或 A 到 z)。

你可以像这样简单地做到这一点:

if(!Regex.Matches(name, "^[a-zA-Z]+$"))
    // name is invalid

匹配正则表达式:

if (!Regex.Match(name, "^([A-Za-z ]+)$").Success)
{
  // Error message here.
}

这也将允许在人名中使用空格,这可能是您想要的。

有关 C# 中正则表达式的更多信息,请访问:http://tim.oreilly.com/pub/a/oreilly/windows/news/csharp_0101.html

Match match = Regex.Match(name, @"[A-Za-z]+", RegexOptions.IgnoreCase);
// Here we check the Match instance.
if (match.Success)
{
...
}

您可以使用 RegEx 类,看看它是否与您的输入匹配。

您可以使用正则表达式。如果他们输入无效的条目,请拒绝该条目,显示一条消息并再次请求输入。您可以在 5 行中完成所有这些操作,每个 Console.ReadLine() 都有一个 while 循环。

也:

int roll = int.Parse(Console.ReadLine()); 

国际。如果字符串包含任何非数字字符,则 Parse 将导致异常。

最万无一失的方法,也可能是最简单的方法,是运行用户通过正则表达式输入的内容:

...
var validName = false;
 while (!validName)
 {
    if(!Regex.Match(name, "^[A-Za-z ]+$")
      Console.WriteLine("Invalid name; try again");
    else
      validName = true;
 }
...

如果测试是字符串不应包含任何数字(允许所有其他字符),则可以使用正则表达式:

var regExContainsDigit = new Regex(@"d");
if (regExContainsDigit.IsMatch(name)) {
   // contains at least 1 digit
}

如果名称只允许使用字母,则情况会变得更加复杂。然后你还应该考虑空格、点、带变音符的字母 (ë é) 等。

string sPattern = "^[A-Za-z]+$"
bool isValid = false;
while(!isValid)
{
   Console.WriteLine("Enter Student Name : ");
   string name = Console.ReadLine();
   isValid = System.Text.RegularExpressions.Regex.Match(name, sPattern);
}

基本上根据正则表达式检查名称值,直到它们正确为止

你可以用一个简单的循环来做到这一点

string name = String.empty
do
{
  Console.WriteLine("Enter Student Name : ");
  name = Console.ReadLine()
}
while(!Regex.Match(name, "^([A-Za-z ]+)$").Success);

相关内容

  • 没有找到相关文章

最新更新