加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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:“有些人在遇到问题时会想’我知道,我会使用正则表达式.’现在他们有两个问题.”)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读