Speak.Me Учить иностранные слова

C#: символы (Characters)

Содержание

Тип char (синоним System.Char) представляет юникод символы и занимает 2 байта. Литералы char указываются внутри одинарных кавычек:

Управляющие последовательности (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) можно передать любой юникод символ, указав сразу после последовательности его четырехзначный шестнадцатеричный код:

Преобразование char

Тип char может быть автоматически (скрыто) преобразован в числовой тип, способный вместить бесзнаковый short. Для остальных числовых типов требуется явное приведение.

System.Char

В System.Char определен набор статических методов для работы с символами. Их можно вызвать через System.Char или его псевдоним char:

Методы ToUpper и ToLower преобразуют символ в верхний и нижний регистр соответственно. Они учитывают локаль конечного пользователя, что может приводит к неявным ошибкам. Методы ToUpperInvariant и ToLowerInvariant делают тоже самое, но без учета локали пользователя.

Также класс System.Char определяет ряд методов для категоризации символов:

  • IsLetter — все буквы (UpperCaseLetterLowerCaseLetterTitleCaseLetterModifierLetterOtherLetter)
  • IsUpper — буквы в верхнем регистре (UpperCaseLetter)
  • IsLower — буквы в нижнем регистре (LowerCaseLetter)
  • IsDigit — все цифры (DecimalDigitNumber)
  • IsLetterOrDigit — буквы и цифры (сумма IsLetter и IsDigit)
  • IsNumber — все цифры, дроби Unicode и числовые символы латинского набора (DecimalDigitNumberLetterNumberOtherNumber)
  • IsSeparator — пробел и все символы разделителей Unicode (LineSeparatorParagraphSeparator)
  • IsWhiteSpace — все разделители плюс \n, \r, \t, \f и \v (LineSeparatorParagraphSeparator)
  • IsPunctuation — знаки пунктуации (DashPunctuationConnectorPunctuationInitialQuotePunctuationFinalQuotePunctuation)
  • IsSymbol — большинство других печатных символов (MathSymbolModifierSymbolOtherSymbol)
  • IsControl — непечатные управляющие символы

Для категоризации символов также предназначен статический класс GetUnicodeCategory, он возвращает перечисление UnicodeCategory, члены которого приведены в скобках в списке выше.