c# – 检查字符串是否是十六进制数的有效重复
发布时间:2020-12-15 20:50:32 所属栏目:百科 来源:网络整理
导读:我是关于正则表达式的总noob. 我的目标是检查一个字符串是否是十六进制数的有效重复. 目前我的实现(我发现它实际上效率不高)是一个包含所有HEX数字(0,1,… 9,A,B..F)的List,并检查我的字符串是否包含未包含在给定List中的字符. ?我打赌这可以使用正则表达式
我是关于正则表达式的总noob.
我的目标是检查一个字符串是否是十六进制数的有效重复. 目前我的实现(我发现它实际上效率不高)是一个包含所有HEX数字(0,1,… 9,A,B..F)的List,并检查我的字符串是否包含未包含在给定List中的字符. ?我打赌这可以使用正则表达式轻松完成,但我不知道如何实现它. private bool ISValidHEX(string s) { List<string> ToCheck = new List<string>(); for (int i = 0; i < 10; i++) { ToCheck.Add(i.ToString()); } ToCheck.Add("A"); ToCheck.Add("B"); ToCheck.Add("C"); ToCheck.Add("D"); ToCheck.Add("E"); ToCheck.Add("F"); for (int i = 0; i < s.Length; i++) { if( !ToCheck.Contains(s.Substring(i,1))) { return false; } } return true; } 解决方法
我原以为尝试将字符串转换为整数类型并处理任何异常是最快的.使用这样的代码:
int num = Int32.Parse(s,System.Globalization.NumberStyles.HexNumber); 生成的代码可能比正则表达式更容易理解,如果您需要解析的值,则特别有用(否则您可以使用在其他答案中充分记录的Int32.TryParse). (我最喜欢的一句话是Jamie Zawinski:“有些人在遇到问题时会想’我知道,我会使用正则表达式.’现在他们有两个问题.”) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |