我正在尝试检查字符串是否包含有效的十六进制数字。
我正在使用Check if string is valid represantion of HEX number中记录的方法。
使用以下代码:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
int temp;
bool b = int.TryParse("0x5", System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture, out temp);
System.Console.Write("{0} : {1}", b, temp);
}
}
我在输出中得到False : 0
。
这是怎么了?
答案 0 :(得分:5)
来自docs:
AllowHexSpecifier
表示数字字符串表示一个十六进制值。有效的十六进制值包括数字0-9和十六进制数字A-F和a-f。 使用此样式分析的字符串不能以“ 0x”或“&h”作为前缀。使用AllowHexSpecifier样式分析的字符串将始终被解释为十六进制值。可以与AllowHexSpecifier组合的唯一标志是AllowLeadingWhite和AllowTrailingWhite。 NumberStyles枚举包括一个复合样式HexNumber,它由这三个标志组成。
(强调我的。)