Для определения типа символа можно воспользоваться методом Char.GetUnicodeCategory(), который возвращает категорию unicode символа. Это позволяет определять чем является символ (числом, буквой, знаком пунктуации, математическим знаком, денежным символом или чем-то ещё).
Рассмотрим некоторые категории. Будем брать по одному символу из разных категорий и смотреть на результат.
Ниже приводится пример работы данного метода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// Blog - https://progtask.ru using System; namespace CheckUnicodeCategory { class Program { static void Main(string[] args) { Console.Title = "Консоль"; char symbol = 'A'; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // Выведет UppercaseLetter, что означает символ в верхнем регистре symbol = 'a'; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // Выведет LowercaseLetter, что значит символ в нижнем регистре symbol = '+'; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // MathSymbol. Математический оператор symbol = '$'; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // CurrencySymbol. Символ денежной единицы symbol = ' '; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // SpaceSeparator. Пробельный символ symbol = '_'; Console.WriteLine(Char.GetUnicodeCategory(symbol)); // ConnectorPunctuation. Знак соединения двух слов. Console.ReadKey(); } } } |
Результат работы:
Также можно вызывать данный метод и для строки, указывая 2-ым параметром индекс интересующего символа:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Blog - https://progtask.ru using System; namespace CheckUnicodeCategory { class Program { static void Main(string[] args) { Console.Title = "Консоль"; string str = "Привет"; Console.WriteLine(Char.GetUnicodeCategory(str, 0)); // UppercaseLetter Console.ReadKey(); } } } |
Результат выполнения кода:
Все доступные unicode категории можно посмотреть тут.