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;
        }

    }

c#输入验证,第一个数字必须是1

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;
}