gpt4 book ai didi

c# - 检查字符串是否是十六进制数的有效表示

转载 作者:太空狗 更新时间:2023-10-29 20:44:26 29 4
gpt4 key购买 nike

我对 regex 完全是菜鸟。

我的目标是检查字符串是否是十六进制数的有效表示。

目前我的实现(我发现效率很低)有一个包含所有十六进制数字(0-9,A-F)的列表,并检查我的字符串是否包含给定列表中未包含的字符。

我打赌这可以使用正则表达式轻松完成,但我不知道如何实现它。

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

关于c# - 检查字符串是否是十六进制数的有效表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933590/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com