C# 判断是不是合法的16进制字符串
方法一:用正则表达式判断,代码如下:
1 2 3 4 5 6 7 8 9 10 | 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); } |
线性遍历输入的十六进制字符串中是否包含非十六进制字符,代码如下:方法二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 ; } |
通过调用上述方法就可以清楚的知道输入的十六进制字符是否正确,然后为程序的下一个工作提供条件。
还有一种方法性能比较慢 就放到文章最后面了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /// <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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2018-09-19 无法识别实体转换拉巴表达式
2018-09-19 SqlServer突破亿级数据操作瓶颈(出处:转载)