C# 判断是不是合法的16进制字符串
程序员文章站
2022-08-05 22:59:36
方法一:用正则表达式判断,代码如下: 线性遍历输入的十六进制字符串中是否包含非十六进制字符,代码如下:方法二: 通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。 还有一种方法性能比较慢 就放到文章最后面了 ......
方法一:用正则表达式判断,代码如下:
public const string pattern = @"([^a-fa-f0-9]|\s+?)+";
/// <summary>
/// 判断十六进制字符串hex是否正确
/// </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns>true:不正确,false:正确</returns>
public bool isillegalhexadecimal(string hex)
{
return system.text.regularexpressions.regex.ismatch(hex, pattern);
}
线性遍历输入的十六进制字符串中是否包含非十六进制字符,代码如下:方法二:
public ilist<char> hexset = new list<char>()
{ '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','a','b','c','d','e','f' };
/// <summary>
/// 判断十六进制字符串hex是否正确
/// </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns>true:不正确,false:正确</returns>
public bool isillegalhexadecimal(string hex)
{
foreach (char item in hex)
{
if (!hexset.contains<char>(item))
return true;
}
return false;
}
通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。
还有一种方法性能比较慢 就放到文章最后面了
/// <summary>
/// 判断是否为合法的16进制字符串
/// </summary>
/// <param name="hexstring"></param>
/// <returns></returns>
public bool ishexadecimal(string hexstring)
{
try
{
hexstring = hexstring.replace(" ", "").replace("\r", "").replace("\n", "");
if ((hexstring.length % 2) != 0)
hexstring += " ";
byte[] returnbytes = new byte[hexstring.length / 2];
for (int i = 0; i < returnbytes.length; i++)
returnbytes[i] = convert.tobyte(hexstring.substring(i * 2, 2), 16);
}
catch
{
return false;
}
return true;
}
#endregion
上一篇: .Net MVC生成二维码并前端展示