Содержание
Тип char (синоним System.Char) представляет юникод символы и занимает 2 байта. Литералы char указываются внутри одинарных кавычек:
1 | char c = 'A'; |
Управляющие последовательности (Escape sequences)
Символы, которые не могут быть переданы с помощью литералов, выражаются с помощью управляющих последовательностей:
| Char | Значение | Юникод |
|---|---|---|
| \’ | Одиночная кавычка | 0x0027 |
| \» | Двойная кавычка | 0x0022 |
| \\ | Обратный слэш | 0x005C |
| \0 | Null | 0x0000 |
| \a | Alert | 0x0007 |
| \b | Backspace | 0x0008 |
| \f | Перевод страницы | 0x000C |
| \n | Новая строка | 0x000A |
| \r | Возврат каретки | 0x000D |
| \t | Горизонтальный таб | 0x0009 |
| \v | Вертикальный таб | 0x000B |
С помощью управляющей последовательности \u (или \x) можно передать любой юникод символ, указав сразу после последовательности его четырехзначный шестнадцатеричный код:
1 2 3 | char copyrightSymbol = '\u00A9'; char omegaSymbol = '\u03A9'; char newLine = '\u000A'; |
Преобразование char
Тип char может быть автоматически (скрыто) преобразован в числовой тип, способный вместить бесзнаковый short. Для остальных числовых типов требуется явное приведение.
System.Char
В System.Char определен набор статических методов для работы с символами. Их можно вызвать через System.Char или его псевдоним char:
1 2 | Console.WriteLine (System.Char.ToUpper ('c')); // C Console.WriteLine (char.IsWhiteSpace ('\t')); // True |
Методы ToUpper и ToLower преобразуют символ в верхний и нижний регистр соответственно. Они учитывают локаль конечного пользователя, что может приводит к неявным ошибкам. Методы ToUpperInvariant и ToLowerInvariant делают тоже самое, но без учета локали пользователя.
Также класс System.Char определяет ряд методов для категоризации символов:
IsLetter— все буквы (UpperCaseLetter,LowerCaseLetter,TitleCaseLetter,ModifierLetter,OtherLetter)IsUpper— буквы в верхнем регистре (UpperCaseLetter)IsLower— буквы в нижнем регистре (LowerCaseLetter)IsDigit— все цифры (DecimalDigitNumber)IsLetterOrDigit— буквы и цифры (суммаIsLetterиIsDigit)IsNumber— все цифры, дроби Unicode и числовые символы латинского набора (DecimalDigitNumber,LetterNumber,OtherNumber)IsSeparator— пробел и все символы разделителей Unicode (LineSeparator,ParagraphSeparator)IsWhiteSpace— все разделители плюс\n,\r,\t,\fи\v(LineSeparator,ParagraphSeparator)IsPunctuation— знаки пунктуации (DashPunctuation,ConnectorPunctuation,InitialQuotePunctuation,FinalQuotePunctuation)IsSymbol— большинство других печатных символов (MathSymbol,ModifierSymbol,OtherSymbol)IsControl— непечатные управляющие символы
Для категоризации символов также предназначен статический класс GetUnicodeCategory, он возвращает перечисление UnicodeCategory, члены которого приведены в скобках в списке выше.

