如何根据数字格式将十进制和十六进制字符串解析为int

时间:2018-08-24 11:00:07

标签: c# parsing hex

如何在C#中将以1234这样的十进制数字或以0X1234开头的十六进制数字解析为int?

我尝试过 int.TryParseConvert.ToInt32但似乎这些函数假定您知道要预先解析十进制值还是十六进制值。我想允许我的用户输入两种格式。

是否有任何标准函数可以自行决定输入是十六进制还是十进制格式?还是我必须自己写?

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码:

int value = (int)new System.ComponentModel.Int32Converter().ConvertFromString(hexString);

hexString可以是0x1234和1234。它处理十六进制和非十六进制的情况。

答案 1 :(得分:0)

不确定一种独特的方法。但是为什么不使用条件运算符呢?

string input = "0xA3";
int result = input.Contains("0x") ? Convert.ToInt32(input , 16) : Convert.ToInt32(input);