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

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

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

Управляющие последовательности (Escape sequences)

Символы, которые не могут быть переданы с помощью литералов, выражаются с помощью управляющих последовательностей:

CharЗначениеЮникод
\'Одиночная кавычка0x0027
\"Двойная кавычка0x0022
\\Обратный слэш0x005C
\0Null0x0000
\aAlert0x0007
\bBackspace0x0008
\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, члены которого приведены в скобках в списке выше.