【高分】C#小程序编一个程序

编一个程序,输入一个代表身份证号码的字符串,判断字符串长度是否正确(18位),还要判断输入的每个字符是否为数字。否则要求重新输入。不用验证身份证号码规则,只要是18为数字... 编一个程序,输入一个代表身份证号码的字符串,判断字符串长度是否正确(18位),还要判断输入的每个字符是否为数字。否则要求重新输入。不用验证身份证号码规则,只要是18为数字就行了,求完整代码。 展开
 我来答
仙戈雅3n
推荐于2016-08-20 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:895万
展开全部

控制台程序还是窗体程序?


// 下面是控制台程序

using System;


namespace ConsoleApplication1
{
    class Program
    {
        static bool IsDigits(char n)
        {
            char[] dig = new char[10] {'0','1','2','3','4','5','6','7','8','9'};
            
            for (int i = 0; i < dig.Length; i++)
            {
                if (Convert.ToChar(n) == dig[i]) return true;
            }
            return false;
        }
        static void Main(string[] args)
        {
            char[] ID = new char[18];
            int i;
            bool YES=true;

            string aa;
            
            while (true)
            {
                Console.Write("请输入身份证号码:");
                for (i = 0; i < 18; i++) // 保证输入的字符有18个(暂且不管它是否为数字)
                {
                    ID[i] = (char)Console.Read();
                }

                // 判断它是不是全部都为数字
                for (i = 0; i < 18; i++)
                {
                    if (Program.IsDigits(ID[i])) continue;
                    else
                    {
                        YES = false;
                        break;
                    }
                    
                }
                
                if (YES)
                {
                    Console.WriteLine("身份证号码符合要求");
                    break;
                }
                else
                { // 不符合要求
                    Console.WriteLine("不符合要求");
                    Console.ReadKey(true);
                    Console.Clear();
                    continue;
                } 
                
                
                
            }
           
        }
    }
}
syht2000
高粉答主

2013-12-24 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

身份证号最后一位可以是字母的,如果你要的确实只是18位数字,如下

static Boolean CheckID(string id)
        {
            string card = id.Trim();
            if (card.Length != 18) return false;
            foreach (char c in card)
                if (!(c >= '0' && c <= '9')) return false;
            return true;
        }
        static void Main(string[] args)
        {
            Console.Write("请输入18位数字:");
            while (true)
            {
                string input = Console.ReadLine();
                if (CheckID(input)) { Console.WriteLine("输入有效"); break; }
                else Console.Write("无效数字,请重新输入:");
            }            
            Console.ReadKey();
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zkkkk66
2013-12-24 · TA获得超过132个赞
知道小有建树答主
回答量:321
采纳率:0%
帮助的人:112万
展开全部

判断字符串是否为数字:

 

            string str ="123s";            
            try
            {
                int i = Convert.ToInt32(str);
                return false;
            }
            catch
            {
                return true;
            }

长度:

            string str ="123";
            if (str.Length != 18)
            {
                //Length是长度 长度是3不等于18
            }
            else
            {
                //等于18
            }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萝卜天使
2013-12-24 · TA获得超过149个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:149万
展开全部
        string shenfenzheng = text1.Text;

if(shenfenzheng.Length != 18)
{//输入长度不等于18
return false;
}

if(CheckInputChar(shenfenzheng))
{//检查是否全数字
return true;
}
else
{
return false;
}

/// <summary>
        /// 验证用户输入
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        internal static bool CheckInputChar(string str)
        {
            for (int i = 0; i < str.Length; i++)
            {
                char a = str[i];
                if ((a >= '0' && a <= '9'))
                {

                }
                else
                {
                    return false;
                }
            }
            return true;
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghotos
2013-12-24 · TA获得超过280个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:362万
展开全部

有个问题就是身份证不全数字的,有得结尾是x

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式