TGViewer
codaza codaza @codaza · 4.59K subscribers
Post #54 5.31K
#капитану_на_заметку

Всем привет!

Спешу поделиться с вами интересным практическим случаем работы со строками. Недавно мне довелось работать с одним из австрийских сервисов обработки сообщений из различных мессенджеров (WhatsApp, Viber и пр). Ребята собирают аналитическую статистику по отправляемым сообщениям и столкнулись с тем, что данные в этой статистике, время от времени, искажались непонятным образом.

Я проанализировал исходный код сервиса и обнаружил, что проблема в подсчёте длины строки сообщений. Разработчик сервиса воспользовался свойством Length у экземпляра класса String. Это решение было логично и казалось единственно верным. Проблема в том, что люди часто используют Emoji в своих сообщениях и 1 символ Emoji не равен длине одного символа, так как для их кодировки используется Unicode.

Для правильного сбора статистки требовалась именно посимвольная длина строки. Свойство LengthInTextElements (класс StringInfo) решает именно эту задачу.

+1 к опыту работу со строками ✅

Всем хороших выходных!
  • 👍 160
  • 🔥 22
  • 👏 3
More from @codaza
  1. Oct 28, 2022#капитану_на_заметку Всем привет! 👻 Понятие "качественный код" очень многогранно. Одна из…
  2. Oct 5, 2022#капитану_на_заметку Всем привет! Рефакторить код и визуально уменьшать синтаксические кон…
  3. Sep 14, 2022#капитану_на_заметку Всем привет! Мне нравится использовать подход Code First. Особенно уд…
  4. Sep 7, 2022#капитану_на_заметку Всем привет! Нельзя сказать, что генерация исключений в C# выглядит и…
  5. Aug 31, 2022#капитану_на_заметку Всем привет! Комментирование исходного кода — это здорово! Открыл исх…
  6. Aug 24, 2022#капитану_на_заметку Всем привет! Большинство web-сервисов предоставляют возможности для и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →