Инвертор текста: Мгновенное обращение и переворот символов
Бесплатный онлайн-инструмент для инвертирования текста, позволяющий мгновенно переворачивать любую строку. Переворачивайте символы, проверяйте палиндромы и создавайте текст задом наперед. Работает с Unicode, эмодзи и всеми языками.
Инструмент для инверсии текста
Введите или вставьте любой текст ниже, чтобы мгновенно перевернуть порядок символов. Смотрите результаты в реальном времени по мере ввода.
Документация
Что такое инвертор текста?
Инвертор текста — это инструмент, который меняет порядок символов в отрывке текста на обратный. Ввод слова «hello» даёт «olleh». Он записывает каждый символ входных данных в обратном порядке — от последнего к первому. Инвертор используют для создания текста задом наперёд, проверки того, является ли слово палиндромом, или изучения принципа обращения строк в программировании.
Как использовать инвертор текста
- Введите или вставьте текст в поле ввода.
- Перевёрнутый текст появляется ниже сразу после прекращения ввода. Нажимать кнопку не нужно.
- Нажмите кнопку копирования, чтобы скопировать результат.
Кнопка сброса очищает и поле ввода, и результат. Инструмент принимает до 10 000 символов; при более длинном вводе появляется сообщение об ошибке с просьбой сократить текст. Подсчёт ведётся по видимым символам: один эмодзи считается одним символом, хотя компьютер хранит его как несколько частей.
Формула обращения текста
Для строки длиной n, состоящей из символов , перевёрнутая строка имеет вид:
Простыми словами: последний символ становится первым, предпоследний — вторым, и так далее, пока первый символ не станет последним.
Как работает алгоритм: пошаговое описание
- Начните с пустого результата.
- Возьмите последний символ входных данных и добавьте его в результат.
- Возьмите предпоследний символ и добавьте его.
- Повторяйте эти действия, пока все символы не будут добавлены в обратном порядке.
Большинство инструментов для обращения текста работает с отдельными компьютерными символами. Этот инструмент вместо этого объединяет каждый эмодзи, флаг и букву с диакритическим знаком в одну единицу перед обращением, используя метод, называемый сегментацией кластеров графем. В следующем разделе объясняется, почему это важно.
Пример расчёта
Ввод: Hello, World!
Перевёрнутый текст: !dlroW ,olleH
Каждый символ, включая запятую, пробел и восклицательный знак, сохраняет свою идентичность. Меняется только порядок.
Обработка эмодзи, диакритических знаков и других символов Unicode
Компьютеры часто хранят один видимый символ, например эмодзи или букву с диакритическим знаком, как несколько небольших единиц, называемых кодовыми точками. Метод обращения, который переворачивает эти единицы по одной, не учитывая, какие из них должны оставаться вместе, может разделить символ.
Например, строка «Hello 👍» содержит эмодзи с поднятым вверх большим пальцем, составленное из пары скрытых единиц. Простое обращение отдельных единиц может разделить эту пару и вместо эмодзи создать повреждённые символы. Этот инструмент избегает проблемы, рассматривая каждый эмодзи, флаг и букву с диакритическим знаком как одну единицу, поэтому «Hello 👍» корректно превращается в «👍 olleH». Эмодзи-флаг, состоящий из двух скрытых символов, обозначающих код страны, также сохраняется целиком: «🇺🇸 USA» превращается в «ASU 🇺🇸», а не разделяется на части.
Распространённые применения
- Проверка палиндромов: палиндром одинаково читается слева направо и справа налево, например «racecar». Сравнение слова с его обращённой версией — один из способов это проверить.
- Обучение программированию: обращение строки — распространённое упражнение для практики работы с циклами, массивами и стеками.
- Словесные игры и головоломки: перевёрнутые слова используют, чтобы скрывать сообщения в головоломках и квест-комнатах.
- Эффекты оформления: некоторые дизайнеры обращают текст для создания зеркальных логотипов или визуальных эффектов.
- Отладка: сравнение прямого и перевёрнутого текста может помочь обнаружить некоторые ошибки в данных.
Обращение символов и обращение слов
Эти две операции часто путают.
- Обращение символов (то, что делает этот инструмент): каждый символ переворачивается. "Hello World" превращается в "dlroW olleH".
- Обращение слов: каждое слово сохраняется без изменений, но порядок слов меняется. "Hello World" превращается в "World Hello".
Краткая история
Перевёрнутое и зеркальное письмо появилось за тысячи лет до компьютеров. В некоторых древнегреческих надписях использовался стиль, называемый бустрофедоном: строки шли поочерёдно слева направо и справа налево, подобно движению вола при вспашке поля. Леонардо да Винчи вёл значительную часть своих записей зеркальным письмом, которое можно было прочитать только в зеркале; историки до сих пор спорят, делал ли он это ради секретности, для удобства как левша или чтобы чернила не размазывались.
В вычислительной технике обращение строки было стандартным упражнением по программированию ещё на заре информатики. Его часто используют, чтобы объяснить работу стеков и массивов, поскольку помещение символов в стек и их извлечение автоматически меняет их порядок на обратный.
Как обратить текст в коде
Большинство языков программирования имеют встроенный или простой способ обращения строки:
1text = "Hello, World!"
2print(text[::-1]) # !dlroW ,olleH
31const text = "Hello, World!";
2console.log([...text].reverse().join('')); // !dlroW ,olleH
3Оба примера корректно обращают текст, состоящий из обычных букв и цифр, а также одиночные эмодзи, например 🌍. Однако они могут разделить символ, состоящий из нескольких скрытых единиц, например некоторые эмодзи-флаги, буквы с отдельно введённым диакритическим знаком или эмодзи семейства, соединённые специальными символами-соединителями. Для обращения с сохранением целостности графем, как в этом инструменте, нужна специальная функция, например Intl.Segmenter в JavaScript.
Производительность
Обращение текста выполняется за линейное время: алгоритм просматривает каждый символ ровно один раз, поэтому при удвоении входных данных объём работы примерно удваивается. Для обычного текста — от одного слова до нескольких страниц — результат появляется практически мгновенно. Очень большие файлы, размером в мегабайты и более, лучше обрабатывать специализированными программами, которые передают данные потоково, а не загружают их целиком в память.
Часто задаваемые вопросы
Как обратить текст онлайн?
Вставьте или введите текст в поле выше. Перевёрнутый текст автоматически появляется сразу после прекращения ввода. Нажмите кнопку копирования, чтобы скопировать результат.
Существует ли максимальная длина текста?
Да. Инструмент принимает до 10 000 символов. При более длинном вводе вместо результата появляется сообщение об ошибке. Символы подсчитываются так, как они выглядят на экране, поэтому эмодзи или буква с диакритическим знаком считаются одним символом, а не двумя.
Этот инструмент обращает слова или только символы?
Он обращает отдельные символы, а не меняет порядок слов. "Hello World" превращается в "dlroW olleH", а не в "World Hello".
Может ли инструмент обрабатывать эмодзи и тексты на других языках?
Да. Инструмент рассматривает эмодзи, флаги и буквы с диакритическими знаками как отдельные единицы, поэтому они сохраняются целиком после обращения. Он также работает с любыми письменностями, включая китайскую, арабскую и кириллическую.
Вернётся ли исходный текст, если обратить текст дважды?
Да. Обращение перевёрнутой строки восстанавливает исходный текст. Это свойство называется инволюцией.
Полезен ли перевёрнутый текст для шифрования?
Нет. Обращение символов не обеспечивает защиты. Оно лишь визуально скрывает текст, и любой, кто обратит его обратно, сможет его прочитать.
Источники
- Unicode Consortium. Стандарт Unicode, приложение #29: сегментация текста Unicode.
- Кормен Т. Х., Лейзерсон Ч. Е., Ривест Р. Л., Стайн К. (2009). Введение в алгоритмы (3-е изд.). MIT Press.
- MDN Web Docs. Intl.Segmenter. Mozilla Developer Network.