String-Umkehr-Werkzeug
Text-Strings schnell umkehren, mehrere Umkehrmodi unterstützt
Umkehrungsmethode wählen
Was ist String-Umkehrung?
String Reverse kehrt die Reihenfolge von Textzeichen um und erzeugt aus einer Eingabe die rückwärts gelesene Ausgabe. Das wirkt einfach, ist aber bei echter Textverarbeitung interessanter als es klingt: Unicode-Zeichen, Emoji, kombinierende Akzente, Zeilenumbrüche, Leerzeichen und rechts-nach-links-Schriften können anders reagieren als reine ASCII-Buchstaben. Das Werkzeug ist nützlich für kleine Textspiele, Palindrom-Prüfung, Datenexperimente, Debugging von Zeichenketten, Unterricht und das Sichtbarmachen versteckter Leerzeichen oder Endungen. Es ist nicht für kryptografische Verschleierung oder sichere Datenmaskierung geeignet. Wenn Text aus mehreren Codepoints pro sichtbarem Zeichen besteht, sollte das Ergebnis kontrolliert werden. Bei veröffentlichten oder mehrsprachigen Inhalten sollte das Ergebnis wegen Sprache, Zeichensatz, Kontext und Sonderfällen kurz gegengelesen werden.
Anleitung
Grundoperationen
- Text zum Umdrehen in das linke Eingabefeld eingeben oder einfügen
- Umdrehmodus auswählen (alles umdrehen, Wörter umdrehen usw.)
- Rechts wird das umgedrehte Ergebnis automatisch angezeigt
- Auf „Kopieren“ klicken, um das Ergebnis zu übernehmen, oder auf „Tauschen“, um es als Eingabe für weitere Operationen zu verwenden
Textverarbeitung
- Einfachen Text umzudrehen ist unkompliziert, doch Emojis, Kombinationszeichen und Rechts-nach-Links-Schriften können unerwartete visuelle Ergebnisse erzeugen.
- Bei Code, URLs oder strukturierten Daten nur den gewünschten Abschnitt umdrehen, statt blind den gesamten Text zu verarbeiten.
Anwendungsfälle
Technisches Prinzip
Die Umkehrung auf Zeichenebene nutzt die Spread-Syntax: [...str].reverse().join(''). Der Spread-Operator iteriert die Zeichenkette als Folge von Unicode-Codepoints, was auch Zeichen außerhalb der Basic Multilingual Plane korrekt behandelt, die zwei UTF-16-Codeunits belegen (Surrogate-Paare). Die einfachere Variante str.split('').reverse().join('') trennt an Codeunits und zerstört jedes Emoji wie den Partyspender 🎉 (U+1F389), die Rakete 🚀 (U+1F680) oder jedes Zeichen oberhalb von U+FFFF. Graphem-Cluster stellen eine weitere Ebene dar. Ein vom Benutzer wahrgenommenes Zeichen wie a mit einem kombinierenden Akzent (a + ◌́), ein Flaggen-Emoji aus zwei Regionalindikatoren oder ein ZWJ-verbundenes Familien-Emoji 👨👩👧 besteht aus mehreren Codepoints. Die Codepoint-Umkehrung vertauscht weiterhin die Einzelteile, sodass das Familien-Emoji zu drei separaten Personenfiguren wird und der Akzent vom Grundbuchstaben abrutscht. Intl.Segmenter mit granularity: 'grapheme' ist der standardkonforme Weg, Graphem-Cluster zu iterieren und diese Folgen bei der Umkehrung intakt zu halten. Auf Operationsebene beträgt der Aufwand O(n) bezogen auf die Anzahl der Segmente, wobei n die Zeichenkettenlänge in Codepoints oder Graphemen je nach gewählter Segmentierung ist. Zweimaliges Umkehren ergibt die Ausgangszeichenkette, was die Funktion für Palindrom-Prüfungen nützlich macht. Bei Unicode-lastiger Eingabe reduziert eine NFC-Normalisierung (str.normalize('NFC')) vor der Umkehrung Grundzeichen + kombinierende Folgen zu vordefinierten Formen, falls vorhanden, was Überraschungen in der Ausgabe vermindert. Rechts-nach-links-Schriften wie Arabisch und Hebräisch werden in logischer Reihenfolge gespeichert, aber von rechts nach links dargestellt, sodass eine umgekehrte arabische Zeichenkette optisch trotzdem umgekehrt aussieht.
- Codepoint-Umkehrung: [...str].reverse().join('') iteriert nach Codepoints und bewahrt Surrogate-Paare oberhalb von U+FFFF (die meisten Emoji)
- Einfache Byte-Falle: str.split('').reverse().join('') trennt UTF-16-Codeunits und zerstört jedes Zeichen oberhalb von U+FFFF
- Graphem-Cluster: Intl.Segmenter({ granularity: 'grapheme' }) hält kombinierende Zeichen, Flaggenfolgen und ZWJ-Emoji 👨👩👧 intakt
- Wort-Umkehrung: split(/\s+/), reverse, join(' '); erhält jedes Wort intern und kehrt nur die Reihenfolge um
- Komplexität: O(n), wobei n die Anzahl der Segmente ist; zweimaliges Umkehren liefert die Ausgangszeichenkette zurück
- NFC-Normalisierung: str.normalize('NFC') fasst kombinierende Folgen vor der Umkehrung zu vordefinierten Formen zusammen, falls vorhanden
- Bidi-Text: Arabisch und Hebräisch werden in logischer Reihenfolge gespeichert; die gerichtete Darstellung erfolgt durch die BiDi-Schicht des Browsers, getrennt von der Datenumkehrung
Beispiele
Alle Zeichen umkehren (Grundlagen)
Modus: Alle umkehren
Eingabe: hello world
Ausgabe: dlrow olleh
Eingabe: 12345
Ausgabe: 54321
Eingabe: A man a plan a canal Panama
Ausgabe: amanaP lanac a nalp a nam AWörter umkehren vs. jedes Wort umkehren
Eingabe: The quick brown fox
Modus: Wörter umkehren (nur Wortreihenfolge)
-> fox brown quick The
Modus: Jedes Wort umkehren (Buchstaben innerhalb jedes Wortes)
-> ehT kciuq nworb xofPalindrom-Prüfung
Eingabe: racecar
Alle umkehren -> racecar (gleich, ist Palindrom)
Eingabe: level
Alle umkehren -> level (Palindrom)
Eingabe: hello
Alle umkehren -> olleh (KEIN Palindrom)Sicherheit bei Unicode und Emoji
Eingabe: cafe (mit kombinierendem Akut auf e)
Naive Umkehrung: efac (Akzent löst sich vom Buchstaben)
Graphem-bewusst: efac (Akzent bleibt verbunden)
Eingabe: Familien-Emoji-ZWJ-Sequenz
Naive Umkehrung: in 3 separate Emojis zerlegt
Dieses Tool: hält den Cluster intaktZeilenreihenfolge in einer Logdatei umkehren
Modus: Zeilenreihenfolge umkehren
Eingabe:
2026-06-10 09:00 startup
2026-06-10 09:05 login ok
2026-06-10 09:10 query slow
Ausgabe (neueste zuerst):
2026-06-10 09:10 query slow
2026-06-10 09:05 login ok
2026-06-10 09:00 startupFAQ
Was macht das Umkehren eines Strings?
Es gibt die Eingabe in umgekehrter Zeichenreihenfolge zurück: 'hello' → 'olleh'. Praktisch für Spielerei-Chiffren im Stil von ROT-13, Palindrom-Prüfungen, gespiegelten Anzeigetext oder schnelle Demos zur Array-Manipulation in Tutorials.
Werden Emoji und CJK korrekt umgekehrt?
Die meisten CJK-Zeichen und einfachen Emoji funktionieren korrekt, weil die Seite den Spread-Operator ([...text]) verwendet, der UTF-16-Surrogate-Paare richtig behandelt. Komplexe Emoji-Sequenzen (Familien-Emoji, Flaggen-Emoji, Hauttonkombinationen) können beim Umkehren zerfallen, da sie aus mehreren Codepoints bestehen, die getrennt werden.
Was passiert mit kombinierenden Akzenten?
Zeichen aus einem Grundbuchstaben plus kombinierenden Markern (e + Akut → é) werden als ein einzelnes Graphem umgekehrt. Eingaben in zerlegter Form müssen eventuell zuerst normalisiert werden – die Seite kann beim Eingeben NFC-Normalisierung anwenden. Das sichtbare Ergebnis für natürliche Sprache stimmt in beiden Fällen.
Wie unterscheidet sich Umkehren von einer Spiegelung?
Umkehrung ist Zeichenreihenfolge: 'AB' → 'BA'. Spiegelung ist eine visuelle Drehung: 'AB' angezeigt als ⟨ƎA⟩, was eine CSS-Transformation oder Sonderzeichen erfordert. Die Seite kehrt die Zeichenreihenfolge um, sie spiegelt keine Pixel. Für gespiegelten Text-Effekt nutze CSS scaleX(-1).
Bleiben Zeilenumbrüche erhalten?
Standardmäßig wird die gesamte Eingabe inklusive Zeilenumbrüche umgekehrt, sodass die letzte Zeile zuerst steht. Mit der Option 'jede Zeile einzeln umkehren' werden die Zeichen innerhalb der Zeilen umgekehrt, die Zeilenreihenfolge bleibt aber erhalten – nützlich für visuelle Effekte bei mehrzeiligem Text.
Ist umgekehrter Text immer lesbar?
Sprachen, die von links nach rechts gelesen werden (Englisch, Chinesisch, Japanisch), werden beim Umkehren unleserlich. Rechts-nach-links-Sprachen (Arabisch, Hebräisch) werden zwar etwas lesbarer, sind aber ebenfalls kaputt, weil der Bidi-Algorithmus gegen die Umkehrung arbeitet. Umkehren ist meist eine Code- oder Rätselübung, keine echte Textumwandlung.
Wird mein Text hochgeladen?
Nein. Das Umkehren läuft in deinem Browser. Eingefügter Text wird nicht übertragen.