永发信息网

c#怎么判断16进制输入格式是否正确?

答案:2  悬赏:50  手机版
解决时间 2021-04-05 11:21
一个文本框输入一段16进制文本,然后从串口发送出去,但是一旦输入格式错误发送时候程序就会卡死,有没有比较简便完善的检测方法。
最佳答案
要判断16进制输入格式是否正确?
        首先我们要知道16进制字符只包含:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,a,b,c,d,e,f 共22个字符。

        那么思路就来了就是对输入的16进制字符进行一一判断如果包含了不在16进制字符集里面的字符,该输入就是不正确的。

        方法有很多列如:

方法一:
        用正则表达式判断,代码如下:

        public const string PATTERN = @"([^A-Fa-f0-9]|\s+?)+";
        /// 
        /// 判断十六进制字符串hex是否正确
        /// 

        /// 十六进制字符串
        /// true:不正确,false:正确
        public bool IsIllegalHexadecimal(string hex)
        {
            return System.Text.RegularExpressions.Regex.IsMatch(hex, PATTERN);
        }方法二:

        线性遍历输入的十六进制字符串中是否包含非十六进制字符,代码如下:

        public IList HexSet = new List() 
        { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f' };       
        /// 
        /// 判断十六进制字符串hex是否正确
        /// 

        /// 十六进制字符串
        /// true:不正确,false:正确
        public bool IsIllegalHexadecimal(string hex)
        {
            foreach (char item in hex)
            {
                if (!HexSet.Contains(item))
                    return true;
            }
            return false;
        }通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。
全部回答
你多了个空格,你最后面的空格去掉,就ok了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
王者荣耀玩了将近四五个月,收集了两套110级
招行信用卡已出账单分期和未出账单分期的有什
金庸关于江湖的名句,金庸封笔古龙逝,江湖唯
单选题下列各组词语中,没有错别字的一组是A.
字谜 “荒原”打一个字
即热式电热水器能带地热吗
研磨机哪个牌子好
什么叫过继,过继人对亲生父母有继承全吗
---Doyou________afteryourmotheroryourfathe
清朝装钱盒子叫什么
单选题适合生物呼吸的大气存在是地球上存在生
仿佛我不是小孩而是大人去掉仿佛二字可以吗?
清溪河畔春意浓刘建春②“嗬,上船啰。”艄公
有地下室一层建筑结构房屋埋置深怎么计算高层
一个很老的游戏0几年的三d游戏,大致是这样两
推荐资讯
各位大神,减脂期间喝酸奶会胖吗
澳洲快递清关需要多久,我的快递好几天了都显
国庆安全宣传标语,简短国庆节祝福语10字左右
为什么说普洱茶是后发酵茶?
----does it take you to watch TV?-About fo
1200瓦单相双值电容电动机为什么总烧电容,我
淡水20号鱼钩,可以钓什么鱼
钥匙插反了'卡在里面拔不出来了''
三位华山一条路,打一位阿拉伯数字
新开店铺,多久能好起来
林肯是美国历史上最伟大的总统否?
我用的是笔记本;想买个无线上网卡经常出差;
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?