c#输入验证,第一个数字必须是1
本文关键字:数字 第一个 输入 验证 | 更新日期: 2023-09-27 18:17:06
我想确保我的用户输入是6位数字,并从数字1开始。我如何确保输入从1开始?
private static void GetCustomerInfo(out string accNumberC)
{
string accNumberC;
Console.Write("Account number: ");
accNumberC = Console.ReadLine();
if (accNumberC == "" || accNumberC.Length < 6 || accNumberC.Length > 6)
{
Console.WriteLine("Invalid data entered - no value redorded");
accNumberC = null;
}
}
if (string.IsNullOrEmpty(accNumberC) || accNumberC.Length != 6 || !accNumberC.StartsWith("1"))
{
Console.WriteLine("Invalid data entered - no value redorded");
}
您可以像使用索引那样访问第一个字符:
if (accNumberC == "" || accNumberC.Length != 6 || accNumberC[0] != '1') //or use StartsWith
{
Console.WriteLine("Invalid data entered - no value redorded");
accNumberC = null;
}
直接使用accNumberC[0]=='1'
比较并标记错误
您可以尝试将输入的字符串解析为整数值:
int val;
if (!int.TryParse(accNumberC, out val))
{
// string cannot be parsed as int.
Console.WriteLine("Cannot parse entered value");
}
else if (val < 100000 || val > 199999)
{
// value is not 6 digits length or doesn't start with 1.
Console.WriteLine("Invalid data entered - no value redorded");
}
else
{
// acceptable value here.
}
另一个解决方案是使用正则表达式。下面是一个例子:
bool isValid(string accountNumber)
{
if(String.IsNullOrWhiteSpace(accountNumber)) return false;
var result = System.Text.RegularExpressions.Regex.Match(accountNumber,"^1''d{5}$");
return result.Success;
}