Command Palette

Search for a command to run...

Een string online omdraaien: hoe deze tool werkt, emoji en al

Een string online omdraaien: hoe deze tool werkt, emoji en al

T
Toolz Team
|Jul 9, 2026|11 min lezen

Onderdeel van de collectie Teksttools

String omgekeerd

Keer elke tekstreeks onmiddellijk om. Ondersteunt het laden van bestanden en het laden van URL met de optie Automatisch omkeren.

String omgekeerd gebruiken

Ik heb de string reverse tool op Toolz.dev verzonden, denkend dat het het saaiste was dat ik de hele maand had gebouwd. split('').reverse().join(''). Wat kan er misgaan Vervolgens heb ik de voorbeeldtekst I' d geschreven - die, omdat ik me schattig voelde, eindigde met & quot;Unicode: 界 🌍🚀" - en de output kwam terug toen de twee emoji in onleesbare dozen werden veranderd. 🌍🚀 verslappen \ude80🜍\ud83c. De Chinese karakters draaiden perfect om. De emoji verbrijzelde.

Die vijf minuten durende verrassing is eigenlijk het nuttigste wat ik je kan leren over het omkeren van tekenreeksen, dus deze hele gids is eromheen gebouwd Tekst omkeren klinkt triviaal, en voor gewone ASCII is het. 'Het moment dat je emoji, vlaggen of bepaalde tekens met accenten introduceert, & quot; keer de string&quot om; heeft niet langer één voor de hand liggend antwoord - en de meeste tools, waaronder deze, kiezen stilletjes het antwoord dat ze breekt.

de String omgekeerd Tool doet één ding: het keert personages onmiddellijk om terwijl je typt. Geen modi om te configureren, geen aanmelding en uw tekst verlaat de browser nooit. Laat me je precies laten zien wat het doet, waar het breekt en hoe je tekst kunt omkeren juist In echte code wanneer breuk niet acceptabel is.

tl;dr: tekst in plakken in String omgekeerd en het draait de karaktervolgorde live om Hello HALD olleH. Het is een enkele karakter-omkeermodus (geen afzonderlijke woord- of regelmodi), het wordt automatisch bijgewerkt terwijl u typt, en u kunt het resultaat kopiëren of downloaden. Het is perfect voor palindroomcontroles, snelle puzzels en het verifiëren van interviewantwoorden. Let op: als een gewoon JavaScript split(''), het breekt emoji en vlaggen omdat het splitst door code-eenheid. Platte tekst en CJK keert fijn. Combineer het met de doosomvormer of woord teller voor snel tekstwerk.

Wat doet de String Reverse Tool eigenlijk?

Precies één bewerking: het keert de volgorde van de tekens om. Het laatste personage wordt het eerste, enzovoort.

Invoer: Hello World Uitgang: dlroW olleH

Onder de motorkap is de logica echt één regel: dezelfde regel die jij 'd in een JavaScript-interview schrijft:

text.split('').reverse().join('')

Er zijn geen "omgekeerde woorden" of "omgekeerde regels" omgekeerde modus die zich verstopt in een menu. Eerdere concepten van deze pagina beschreven karakter, woord, zin en regelmodi; dat was ambitieus, niet echt. Het gereedschap keert karakters om, puntsgewijs. Het wordt automatisch bijgewerkt terwijl u typt, zodat u het omgekeerde resultaat live ziet, en het geeft u het karakter en het aantal lijn van zowel invoer als uitvoer. U kunt tekst plakken, een tekstbestand uploaden, laden vanaf een URL, het resultaat kopiëren of downloaden als een .txt.

Als u specifiek de omkering van de woordvolgorde wilt (Hello WorldWorld Hello), je zou dat in code doen met split(' ').reverse().join(' ')- I' Ik zal de onderstaande fragmenten tonen.

Waarom breken emoji's als je ze omdraait?

Dit is het deel dat het waard is om te begrijpen, omdat het een hele klasse van bugs verklaart.

JavaScript-strings zijn reeksen van UTF-16 Code-eenheden, niet & quot; characters" in de menselijke betekenis De meeste alledaagse tekens - Engelse letters, cijfers, interpunctie, en zelfs Chinese, Japanse en Koreaanse tekens - passen in een enkele 16-bits code-eenheid Dus split('') Snijdt tussen hen netjes en achteruitrijwerken:

'你好世界'.split('').reverse().join('')  // → '界世好你'  ✅

Maar emoji, vlagreeksen en sommige symbolen leven uitwendige dat bereik en worden opgeslagen als surrogaatparen- twee code-eenheden die alleen samen iets betekenen. split('') snijdt ze gelukkig in tweeën en het omkeren van de helften schuifelt in onzin:

'AB🌍🚀'.split('').reverse().join('')  // → mojibake, the emoji shatter ❌

Het combineren van tekens is de andere val. Een geaccentueerde letter kan op twee manieren worden opgeslagen: als één vooraf samengesteld codepunt (é), of als basisletter plus een apart combinerend accent (e + ). De voorgevormde versie keert prima om. De ontbonden versie maakt het accent los, dat wegdrijft en na omkering op de verkeerde letter terechtkomt.

Dus de eerlijke regel voor deze tool: Platte tekst, cijfers, interpunctie en CJK keren correct om; emoji, vlag emoji en ontbonden accenten zullen breken. Dat' is geen defect dat uniek is voor Toolz.dev - it's wat split('') Overal doet het overal, en veel "omgekeerde string" gedragen zich identiek. Ik heb de naïeve versie opzettelijk op zijn plaats gelaten omdat het snel, transparant is en overeenkomt met wat de meeste mensen bedoelen als ze "omgekeerd" zeggen," maar je verdient het om de rand te kennen.

Hoe draai je een string correct om in code?

Als je echte code en unicode schrijft, is hier de ladder van naïef naar corrigeren.

Niveau 1 - naïef (wat de tool doet): Breek emoji.

str.split('').reverse().join('')

Niveau 2 - spreadoperator: Herhaalt op code puntje, zodat het de meeste emoji intact houdt (surrogaatparen blijven bij elkaar). Nog steeds breekt ontbonden combinaties van tekens en multi-emoji-reeksen zoals vlaggen.

[...str].reverse().join('')

Niveau 3 - grafeembewust: Behandel elk "gewaarwording door een gebruiker"-personage" als atomair. Dit is de echt juiste benadering.

const seg = new Intl.Segmenter('en', { granularity: 'grapheme' });
[...seg.segment(str)].map(s => s.segment).reverse().join('');

Intl.Segmenter Behandelt emoji, vlaggen, huidtoonmodifiers en het op de juiste manier combineren van markeringen. Het is de versie die ik in productie zou nemen als het omkeren van gebruikerstekst met emoji een echte vereiste was.

Hier is dezelfde bewerking in verschillende talen, voor interviewpraktijk en referentie:

# Python — [::-1] works by code point, similar to JS spread
reversed_str = original[::-1]
words_reversed = ' '.join(original.split()[::-1])
// Java — StringBuilder.reverse() is code-unit based (same emoji caveat)
String reversed = new StringBuilder(original).reverse().toString();
// Go — []rune iterates by code point, safer than byte reversal
runes := []rune(original)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
    runes[i], runes[j] = runes[j], runes[i]
}
reversed := string(runes)
// PHP — strrev() is byte-based and mangles any multi-byte UTF-8
$reversed = strrev($original);          // breaks UTF-8

Let op het patroon: bijna elke taal's &quot;Obvious' Reverse is code-eenheid of byte en deelt dezelfde Unicode-zwakte. Het bereiken van de Grapheme-Aware-optie is de uitzondering, niet de standaard.

Waar is snaaromkering eigenlijk goed voor?

Naast het canonieke interview warming-up, verdient het op een paar plaatsen zijn brood.

Palindroomcontroles. Keer de string om en vergelijk met het origineel - als ze overeenkomen, is het &#39; een palindroom Probeer racecar, level, of 12321 in de tool en kijk hoe de output identiek terugkomt. Voor zin palindromen als "een man een plan een kanaalpanama," stripruimten en koffer eerst.

uw eigen code verifiëren. Wanneer u omkeerproblemen in Leetcode-stijl bent, plakt u uw verwachte output in de tool om deze in een oogwenk te controleren. Het is een snel orakel voor de karakter-omkeer-zaak.

Snelle puzzels en speelse tekst. Achterwaartse berichten, woordspelletjes, mirror-y sociale berichten - lage inzet, en omkering is zijn eigen inverse, dus twee keer omkeren geeft je de originele achterkant Die eigenschap is handig om te testen: achteruit, weer omkeren, bevestigen u&#39; thuis zijn.

Een ding om nee gebruik het voor: beveiliging Omkering is een feesttruc, geen codering - it&#39; s triviaal ongedaan gemaakt Het verschijnt in beginner & quot; obfuscation&quot; tutorials, maar behandel omgekeerde tekst nooit als beschermd.

Omkeringstype toonbeeld in het gereedschap? Codefragment
karakter abccba Ja (de enige modus) [...s].reverse().join('')
tekst a b cc b a Nee - doe het in code s.split(' ').reverse().join(' ')
rimpels Lijnvolgorde omgedraaid Nee - doe het in code s.split('\n').reverse().join('\n')
grafeemveilig emoji blijft intact Nee - heeft Intl.Segmenter nodig Zie niveau 3 hierboven

De tweepunterbenadering, als je je voorbereidt op interviews

De reden waarom interviewers deze vraag geweldig vinden, is dat het elegante antwoord helemaal geen ingebouwde omgekeerde gebruikt. Je loopt twee wijzers naar elkaar toe en wisselt:

Original:  H E L L O
           i       j        swap H and O
           O E L L H
             i   j          swap E and L
           O L L E H
               ij           pointers meet — done

Het draait in O (n) tijd en, op zijn plaats gedaan op een veranderlijke array, O (1) extra ruimte.In JavaScript-strings zijn onveranderlijk, dus je kunt &#39; t letterlijk op zijn plaats wisselen, maar de tweepunterlogica is wat ze &#39; u controleert opnieuw. De recursieve versie - reverse(s) = last char + reverse(rest)- is mooier, maar gebruikt O (n) call-stack-ruimte, wat de afweging is die het vermelden waard is in het interview.

En onthoud de eigenschap die het testen triviaal maakt: omkering is zijn eigen inverse. Keer twee keer een string om en je bent terug waar je begon. Wanneer ik een omkeringscode test, is dat de bewering nummer één: reverse(reverse(x)) === x voor een reeks invoer, waaronder vooral emoji, vangt de test feitelijk de surrogaatpaarbug op in plaats van deze te verbergen.

Veelgestelde vragen

Ondersteunt het string reverse tool woord of regelomkering?

heel weinig . Het heeft een enkele modus die tekens omkeert. Er is geen aparte woordvolgorde of regelvolgordemodus. Als u de volgorde van woorden of regels moet omkeren, doe het dan in code met split(' ') of split('\n') gevolgd door .reverse().join(...).

Waarom komen emoji's er verminkt uit na omkering?

Omdat de tool omkeert door UTF-16-code-eenheid, zoals JavaScript&#39;s split(''). Emoji - en vlagreeksen worden opgeslagen als surrogaatparen - twee code-eenheden die alleen samen zinvol zijn - en door omkeren worden ze uit elkaar gesplitst Gewone tekst en CJK-tekens zijn enkelvoudige code-eenheden, zodat ze correct omkeren.

Behandelt het Unicode en CJK-tekst?

gedeeltelijk. Chinese, Japanse, Koreaanse, Cyrillische en voorgevormde tekens met accenten keren correct om, omdat elk een enkele code-eenheid is. Emoji, vlag emoji en ontbonden combinatiemarkeringen zullen breken. Gebruik voor een volledig correcte afhandeling in uw eigen code, Intl.Segmenter Met grafeem granulariteit.

Wordt mijn sms naar een server gestuurd?

Nee. Omkering gebeurt lokaal in uw browser terwijl u typt - de tekst wordt nooit geüpload Dat maakt het veilig voor het omkeren van gevoelige of privé-strings.

Hoe controleer ik of een woord een palindroom is?

keer het om met de String omgekeerd gereedschap en vergelijk met het origineel Als ze &#39; identiek zijn, is het &#39; een palindroom. Voor zinnen verwijdert u spaties, interpunctie en hoofdletterverschillen voordat u - & quot; Een man plant een kanaal Panama&quot; is pas een palindroom na normalisatie.

Kan het een zeer lange tekst aan?

Ja. Omdat het in uw browser wordt uitgevoerd, is de praktische limiet van uw apparaat het geheugen, dat comfortabel miljoenen personages beslaat. Het keert live terug terwijl je typt, dus extreem grote pasta's kunnen iets minder direct aanvoelen, maar er is geen server-retour.

Waarom is het omkeren van een string zo'n veelvoorkomende interviewvraag?

Het verpakt veel fundamentals in één klein probleem: array en string manipulatie, de twee-pointer techniek, in-place versus kopie trade-offs, recursie, en - als de interviewer is scherp - Unicode rand gevallen It&#39; is gemakkelijk te starten en heeft genoeg diepgang om een snel antwoord te scheiden van een grondig.

Verwante hulpmiddelen:

Frequently Asked Questions

No. It has a single mode that reverses characters. There's no separate word-order or line-order mode. If you need to reverse the order of words or lines, do it in code with split(' ') or split('\n') followed by .reverse().join(...).

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!