c#怎么判断16进制输入格式是否正确?
答案:2 悬赏:50 手机版
解决时间 2021-04-05 11:21
- 提问者网友:抽煙菂渘情少年
- 2021-04-05 04:28
一个文本框输入一段16进制文本,然后从串口发送出去,但是一旦输入格式错误发送时候程序就会卡死,有没有比较简便完善的检测方法。
最佳答案
- 五星知识达人网友:低音帝王
- 2020-07-26 13:50
要判断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;
}通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。
首先我们要知道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是否正确
///
/// 十六进制字符串
///
public bool IsIllegalHexadecimal(string hex)
{
return System.Text.RegularExpressions.Regex.IsMatch(hex, PATTERN);
}方法二:
线性遍历输入的十六进制字符串中是否包含非十六进制字符,代码如下:
public IList
{ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f' };
///
/// 判断十六进制字符串hex是否正确
///
/// 十六进制字符串
///
public bool IsIllegalHexadecimal(string hex)
{
foreach (char item in hex)
{
if (!HexSet.Contains
return true;
}
return false;
}通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。
全部回答
- 1楼网友:有你哪都是故乡
- 2019-11-08 07:00
你多了个空格,你最后面的空格去掉,就ok了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯