Obracač textu: Okamžité obrátenie a prevrátenie znakov
Bezplatný online nástroj na obrátenie textu, ktorý umožňuje okamžite obrátiť akýkoľvek reťazec. Prevráťte znaky, skontrolujte palindrómy a vytvorte text pozpiatky. Funguje s Unicode, emotikonmi a všetkými jazykmi.
Nástroj na prevracanie textu
Zadajte alebo vložte akýkoľvek text nižšie a okamžite prevrátite poradie znakov. Výsledky uvidíte v reálnom čase počas písania.
Dokumentácia
Čo je invertovanie textu?
Invertor textu je nástroj, ktorý obracia poradie znakov v časti textu. Zadaním slova „hello“ vznikne „olleh“. Funguje tak, že každý znak vstupu zapíše odzadu, od posledného po prvý. Ľudia ho používajú na vytváranie textu napísaného odzadu, na overenie, či je slovo palindróm, alebo na štúdium fungovania obracania reťazcov v programovaní.
Ako používať invertor textu
- Zadajte alebo vložte text do vstupného poľa.
- Obrátený text sa zobrazí nižšie hneď po skončení písania. Nie je potrebné stlačiť žiadne tlačidlo.
- Stlačením tlačidla kopírovania skopírujete výsledok.
Tlačidlo resetovania vymaže vstup aj výsledok. Nástroj prijíma najviac 10 000 znakov; pri dlhšom vstupe zobrazí chybové hlásenie so žiadosťou o skrátenie textu. Počet sa určuje podľa viditeľných znakov, takže jedna emoji sa počíta ako jeden znak, hoci počítač ju ukladá ako niekoľko častí.
Vzorec na obrátenie textu
Pre reťazec dĺžky n tvorený znakmi je obrátený reťazec:
Jednoducho povedané: posledný znak sa stane prvým, predposledný druhým a tak ďalej, až kým sa prvý znak nestane posledným.
Ako algoritmus funguje krok za krokom
- Začnite s prázdnym výsledkom.
- Vezmite posledný znak vstupu a pridajte ho k výsledku.
- Vezmite predposledný znak a pridajte ho.
- Opakujte, kým neboli v opačnom poradí pridané všetky znaky.
Väčšina nástrojov na obracanie pracuje s jednotlivými počítačovými znakmi. Tento nástroj namiesto toho pred obrátením zoskupí každú emoji, vlajku a písmeno s diakritikou do jednej jednotky pomocou metódy nazývanej segmentácia zhlukov grafém. Nasledujúca časť vysvetľuje, prečo je to dôležité.
Vzorový príklad
Vstup: Hello, World!
Obrátené: !dlroW ,olleH
Každý znak vrátane čiarky, medzery a výkričníka si zachováva svoju identitu. Mení sa iba poradie.
Spracovanie emoji, diakritiky a ďalších znakov Unicode
Počítače často ukladajú jeden viditeľný znak, napríklad emoji alebo písmeno s diakritikou, ako viac než jednu malú jednotku nazývanú kódový bod. Metóda obracania, ktorá tieto jednotky prehadzuje po jednej bez ohľadu na to, ktoré patria k sebe, môže znak rozbiť.
Napríklad „Hello 👍“ obsahuje emoji so zdvihnutým palcom vytvorenú z dvojice skrytých jednotiek. Základné obracanie po jednotlivých jednotkách môže túto dvojicu oddeliť a namiesto emoji vytvoriť poškodené symboly. Tento nástroj sa tomu vyhýba tak, že každú emoji, vlajku a písmeno s diakritikou považuje za jednu jednotku, takže „Hello 👍“ sa správne zmení na „👍 olleH“. Emoji vlajky, ktorá je vytvorená z dvoch skrytých symbolov predstavujúcich kód krajiny, tiež zostane nedotknutá: „🇺🇸 USA“ sa obráti na „ASU 🇺🇸“, nie na rozdelenú vlajku.
Bežné použitia
- Overovanie palindrómov: palindróm sa číta rovnako spredu aj odzadu, napríklad „racecar“. Jedným zo spôsobov overenia je porovnať slovo s jeho obrátenou podobou.
- Učenie sa programovať: obracanie reťazca je bežné cvičenie na precvičenie cyklov, polí a zásobníkov.
- Slovné hry a hádanky: obrátené slová sa používajú na ukrytie správ v hádankách a únikových miestnostiach.
- Dizajnové efekty: niektorí dizajnéri obracajú text pri tvorbe zrkadlovo obrátených logotypov alebo vizuálnych efektov.
- Ladenie programov: porovnanie textu v pôvodnom a obrátenom poradí môže pomôcť odhaliť určité chyby v údajoch.
Obrátenie znakov verzus obrátenie slov
Tieto dve operácie sa často zamieňajú.
- Obrátenie znakov (čo robí tento nástroj): každý znak sa obráti. "Hello World" sa zmení na "dlroW olleH".
- Obrátenie slov: každé slovo zostane nedotknuté, ale zmení sa poradie slov. "Hello World" sa zmení na "World Hello".
Stručná história
Obrátené a zrkadlovo písané texty existovali tisíce rokov pred počítačmi. Niektoré starogrécke nápisy používali štýl nazývaný bustrofédon, pri ktorom sa smer riadkov striedal zľava doprava a potom sprava doľava, podobne ako pri oraní poľa volom. Leonardo da Vinci písal veľkú časť svojich zápisníkov zrkadlovým písmom, ktoré bolo čitateľné iba pri podržaní oproti zrkadlu; historici sa dodnes sporia, či to robil pre utajenie, z pohodlia ako ľavák, alebo aby zabránil rozmazaniu atramentu.
V informatike je obracanie reťazca štandardným programátorským cvičením už od prvých dní počítačovej vedy. Často sa používa na výučbu fungovania zásobníkov a polí, pretože vloženie znakov do zásobníka a ich následné vyberanie automaticky obráti ich poradie.
Ako obrátiť text v kóde
Väčšina programovacích jazykov obsahuje zabudovaný alebo jednoduchý spôsob obrátenia reťazca:
1text = "Hello, World!"
2print(text[::-1]) # !dlroW ,olleH
31const text = "Hello, World!";
2console.log([...text].reverse().join('')); // !dlroW ,olleH
3Oba príklady správne obracajú text s bežnými písmenami a číslami aj s emoji pozostávajúcimi z jednej jednotky, napríklad 🌍. Stále však môžu rozdeliť znak vytvorený z viacerých skrytých jednotiek, napríklad niektoré emoji vlajok, písmená s diakritikou zadanou samostatným diakritickým znamienkom alebo rodinné emoji spojené špeciálnymi spojovacími znakmi. Úplné obracanie rešpektujúce grafémové klastre, ktoré používa tento nástroj, vyžaduje špecializovanú funkciu, napríklad Intl.Segmenter v JavaScripte.
Výkonnosť
Obracanie textu má lineárnu časovú zložitosť: algoritmus sa pozrie na každý znak presne raz, takže zdvojnásobnenie vstupu približne zdvojnásobí množstvo práce. Pri bežnom texte, od jediného slova po niekoľko strán, sa výsledok zobrazí prakticky okamžite. Veľmi veľké súbory, ktorých veľkosť sa pohybuje v megabajtoch a vyššie, je vhodnejšie spracúvať špecializovanými programami, ktoré údaje spracúvajú postupne namiesto toho, aby ich naraz načítali celé do pamäte.
Často kladené otázky
Ako obrátiť text online?
Vložte alebo napíšte text do poľa vyššie. Obrátený text sa zobrazí automaticky hneď po skončení písania. Výsledok skopírujete tlačidlom kopírovania.
Existuje maximálna dĺžka textu?
Áno. Nástroj prijíma najviac 10 000 znakov. Pri dlhšom vstupe sa namiesto výsledku zobrazí chybové hlásenie. Znaky sa počítajú podľa toho, ako vyzerajú na obrazovke, takže emoji alebo písmeno s diakritikou sa počíta ako jeden znak, nie dva.
Obracia tento nástroj slová alebo iba znaky?
Obracia jednotlivé znaky, nie poradie slov. "Hello World" sa zmení na "dlroW olleH", nie na "World Hello".
Dokáže spracovať emoji a neanglický text?
Áno. Nástroj považuje emoji, vlajky a písmená s diakritikou za jednotlivé jednotky, takže po obrátení zostanú nedotknuté. Funguje aj s ľubovoľným písmom vrátane čínskeho, arabského a cyrilského textu.
Dostanem po dvojnásobnom obrátení textu pôvodný text?
Áno. Obrátením obráteného reťazca sa obnoví pôvodný text. Táto vlastnosť sa nazýva involúcia.
Je obrátený text užitočný na šifrovanie?
Nie. Obracanie znakov nie je bezpečné. Text iba vizuálne skryje a každý, kto ho obráti späť, ho môže prečítať.
Referencie
- Unicode Consortium. Unicode Standard Annex #29: Unicode Text Segmentation.
- Cormen, T. H., Leiserson, C. E., Rivest, R. L. a Stein, C. (2009). Úvod do algoritmov (3. vydanie). MIT Press.
- MDN Web Docs. Intl.Segmenter. Mozilla Developer Network.