В этом посте будет обсуждаться, как преобразовать char в int в C#.
1. Использование Char.GetNumericValue()
метод
Рекомендуемый подход заключается в использовании встроенного GetNumericValue() метод для преобразования числового символа Unicode в его числовой эквивалент.
Следующий пример демонстрирует работу GetNumericValue()
метод. Он ожидает символьное представление числового значения и возвращает двойное значение. Приведение необходимо для преобразования значения double в int.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; public class Example { public static void Main() { char ch = '9'; int intVal = (int)Char.GetNumericValue(ch); Console.WriteLine(intVal); } } /* результат: 9 */ |
2. Разница с '0'
Мы знаем, что каждый из символов ASCII представлен значениями от 0 до 127. Чтобы получить целочисленный эквивалент символов от '0' до '9', просто вычтите из него '0'. В следующем примере кода показано, как это реализовать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; public class Example { public static void Main() { char ch = '9'; int intVal = ch - '0'; Console.WriteLine(intVal); } } /* результат: 9 */ |
3. Использование CharUnicodeInfo.GetDecimalDigitValue()
метод
Другой подход заключается в использовании CharUnicodeInfo.GetDecimalDigitValue() метод, который возвращает десятичное значение указанного числового символа Unicode. Этот метод продемонстрирован ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; using System.Globalization; public class Example { public static void Main() { char ch = '9'; int intVal = CharUnicodeInfo.GetDecimalDigitValue(ch); Console.WriteLine(intVal); } } /* результат: 9 */ |
4. Использование Int32.Parse()
метод
В следующем примере кода показано, как использовать Int32.Parse() а также Int32.TryParse()
для преобразования char в его целочисленный эквивалент.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; public class Example { public static void Main() { char ch = '9'; int intVal = int.Parse(ch.ToString()); Console.WriteLine(intVal); } } /* результат: 9 */ |
Это все о преобразовании char в int в C#.