Как разобрать десятичную и шестнадцатеричную строку в зависимости от числового формата в int - PullRequest
0 голосов
/ 24 августа 2018

Как мне разобрать строку с десятичным числом, таким как 1234, или шестнадцатеричным числом с префиксом 0X1234 с целым числом в C #?

Я пробовал int.TryParse и Convert.ToInt32 Но похоже, что эти функцииПредполагается, что вы знаете, хотите ли вы разобрать десятичное или шестнадцатеричное значение на предварительном рисунке.Я хочу, чтобы мой пользователь мог вводить оба формата.

Существуют ли какие-либо стандартные функции, которые могут сами определять, отформатирован ли ввод в шестнадцатеричном или десятичном формате?Или мне самому написать?

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вы можете использовать следующий код:

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

где hexString может быть 0x1234 и 1234. Он обрабатывает шестнадцатеричные и не шестнадцатеричные регистры.

0 голосов
/ 24 августа 2018

Не уверен насчет одного уникального метода. Но почему бы не использовать условный оператор?

string input = "0xA3";
int result = input.Contains("0x") ? Convert.ToInt32(input , 16) : Convert.ToInt32(input);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...