拆分字符串并分别检查每个字符串

 權yzq 发布于 2023-02-10 12:10

我是C#的初学者,试图学习自己,我正在做一个需要以下的练习.

制作标签,文本框和按钮,文本框包含格式为XXX-XXX-XXX的数字,其中每个X都是0-9的数字.因此,我必须检查给定的数字是否有效(9位数)以及该数字的前三位是(070,071,072,075,076,077,078).

所以基本上,每个数字必须从这3个数字开始,然后检查其余6个数字,如果它们是6(不是更多),如果它们是0-9的数字.

到目前为止,这是我的代码:

private void btnProveri_Click(object sender, EventArgs e)
{
    string s = txtTelefon.Text;
    string[] nums = s.Split('-');
    foreach (string num in nums)
    {
        if (num.Length > 3)
        {
            lblRezultat.Text = "Invalid number.";
            break;
        }
    }
}

我该怎么做呢?检查前三个数字是否为特定数字,并检查其余部分是否为3个数字(检查它们是否为0-9(不是字符)的数字也是好的).

2 个回答
  • 这个LINQ方法应该工作,不需要解析它int或使用正则表达式:

    string[] nums = "076-123-456".Split('-');
    var startNums = new[]{"070","071","072","075","076","077","078"};
    bool valid = nums.Length == 3 && 
                 startNums.Contains(nums[0]) &&
                 nums.Skip(1).All(n => n.Length==3 && n.All(Char.IsDigit)); 
    

    2023-02-10 12:13 回答
  • 在以下解决方案中,您可以使用IEnumerable.Contains()根据您的条件检查第一个数字.这会根据您的价值检查每个成员.

    然后在确保每个值为三位数后,我尝试将其转换为整数以确保其格式正确 Int32.TryParse

    string s = txtTelefon.Text;
    string[] nums = s.Split('-');
    int counter = 0;
    IEnumerable<string> first = new List<string> { "070", "071", "072", "075", "076", "077", "078" };
    foreach (string num in nums)
    {
        if (num.Length != 3)
        {
            lblRezultat.Text = "Invalid number.";
            break;
        }
        else if (counter==0)
        {
            if (!first.Contains(num))
            {
                // first 3 digits don't match pattern
                break;
            }
        }
        else 
        {
            int try = 0;
            if (!int.TryParse(num, try))
            {
                 // not a 3 digit number
                 break;
            }
        }
    
        counter++
    }
    if (counter != 3)
    {
        // wrong number of splits (111-222-333-444)
    }
    

    2023-02-10 12:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有