Выбор ответа Senior Строки обновлено

Длина строки с эмодзи

Вопрос

Что выведет Console.WriteLine("👍".Length);?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 2. Строка в .NET это последовательность UTF-16 code units (char).

Варианты ответа

  1. 1
  2. 4
  3. 2правильный ответ
  4. 0

Разбор

Строка в .NET это последовательность UTF-16 code units (char). Эмодзи 👍 лежит за пределами базовой плоскости Unicode и кодируется суррогатной парой из двух char, поэтому Length равен 2. 4 это его длина в байтах UTF-8 или UTF-16. Для подсчёта видимых символов используют StringInfo.LengthInTextElements или перечисление Rune.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.