Command Palette

Search for a command to run...

Invertire una stringa online: come funziona questo strumento, emoji e tutto

Invertire una stringa online: come funziona questo strumento, emoji e tutto

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

Parte della raccolta Strumenti di testo

Stringa inversa

Invertire qualsiasi stringa di testo all'istante. Supporta il caricamento dei file e il caricamento dell'URL con l'opzione di inversione automatica.

Usa Stringa inversa

Ho spedito lo strumento String Reverse su Toolz.dev pensando che fosse la cosa più noiosa che ho costruito per tutto il mese. split('').reverse().join(''). Cosa potrebbe andare storto Poi ho incollato il testo di esempio I & #39; d scritto - che, poiché mi sentivo carino, è finito con & quot;Unicode: . . ." - e l'output è tornato con le due emoji trasformate in scatole confuse. 🌍🚀 divenire \ude80🜍\ud83c. I caratteri cinesi si sono invertiti perfettamente. L'emoji si è frantumata.

Quella sorpresa di cinque minuti è in realtà la cosa più utile che posso insegnarti sull'inversione delle stringhe, quindi tutta questa guida è costruita attorno ad essa Invertendo il testo suona banale, e per l'ASCII semplice è Nel momento in cui introduci emoji, bandiere o certi caratteri accentati, & quot; inverti la stringa& quot; smette di avere una risposta ovvia - e la maggior parte degli strumenti, incluso questo, sceglie tranquillamente la risposta che li rompe.

la Stringa inversa Lo strumento fa una cosa: inverte i caratteri, istantaneamente, mentre digiti. Nessuna modalità da configurare, nessuna registrazione e il tuo testo non lascia mai il browser. Lascia che ti mostri esattamente cosa fa, dove si rompe e come invertire il testo correttamente In codice reale quando la rottura non è accettabile.

tl; dr: Incolla il testo in Stringa inversa e capovolge l'ordine dei personaggi dal vivo - Hello diventa olleH. È una modalità di inversione singola (nessuna modalità di parola o riga separata), si aggiorna automaticamente durante la digitazione e puoi copiare o scaricare il risultato. È perfetto per controlli palindromi, enigmi rapidi e verifica delle risposte alle interviste. Heads Up: come un semplice javascript split(''), rompe emoji e flag perché si divide per unità di codice. Testo normale e CJK inverso bene. Abbinalo al convertitore di borsa oppure Contatore di parole per un rapido lavoro di testo.

Cosa fa effettivamente lo strumento String Reverse?

Esattamente un'operazione: inverte l'ordine dei caratteri. L'ultimo personaggio diventa il primo, e così via.

Input: Hello World Uscita: dlroW olleH

Sotto il cofano la logica è veramente una riga - la stessa riga tu'd scrivi in un'intervista JavaScript:

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

Non ci sono "parole inverse" o "modalità inversa" nascoste in un menu. Le bozze precedenti di questa pagina descrivevano i modi di carattere, parola, frase e riga; era ambizioso, non reale. Lo strumento inverte i caratteri, punto. Si aggiorna automaticamente durante la digitazione, quindi vedi il risultato invertito dal vivo e ti dà il carattere e il conteggio delle linee sia di input che di output. Puoi incollare testo, caricare un file di testo, caricarlo da un URL, quindi copiarlo o scaricarlo come a .txt.

Se vuoi specificamente l'inversione dell'ordine delle parole (Hello WorldWorld Hello), lo fai in codice con split(' ').reverse().join(' ')- I' mostrerà i frammenti qui sotto.

Perché gli emoji si rompono quando li inverti?

Questa è la parte che vale la pena capire, perché spiega un'intera classe di bug.

Le stringhe JavaScript sono sequenze di UTF-16 Codice Unità, non & quot; caratteri" nel senso umano La maggior parte dei caratteri di uso quotidiano - lettere inglesi, cifre, punteggiatura e persino caratteri cinesi, giapponesi e coreani - si adattano a una singola unità di codice a 16 bit Così split('') Tagli tra di loro in modo pulito e inversione di opere:

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

Ma emoji, sequenze di flag e alcuni simboli in diretta fuori che intervallo e sono memorizzati come coppie surrogate- due unità di codice che significano solo qualcosa insieme. split('') Li taglia felicemente a metà e invertendo le metà mescola le metà in sciocchezze:

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

I segni di combinazione sono l'altra trappola. Una lettera accentata può essere memorizzata in due modi: come un punto di codice precomposto (é), o come lettera di base più un accento combinato separato (e + ◌́). La versione precomposta si inverte bene. La versione decomposta stacca l'accento, che fluttua via e atterra sulla lettera sbagliata dopo l'inversione.

Quindi la regola onesta per questo strumento: Testo normale, cifre, punteggiatura e CJK inversione correttamente; emoji, flag emoji e accenti decomposti si romperanno. That' non è un difetto esclusivo di Toolz.dev - it's cosa split('') Fa ovunque, e molti siti di "stringhe inverse" si comportano in modo identico. Ho lasciato la versione ingenua in posizione deliberatamente perché è veloce, trasparente e corrisponde a ciò che la maggior parte delle persone intende quando dice "invertire questo", ma tu meriti di conoscere il vantaggio.

Come si inverte correttamente una stringa nel codice?

Se stai scrivendo un codice reale e questioni Unicode, ecco la scala da ingenuo a corretto.

Livello 1 - ingenuo (cosa fa lo strumento): rompe l'emoji.

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

Livello 2 - operatore di spread: itera per codice nocciolo, quindi mantiene intatta la maggior parte delle emoji (le coppie surrogate stanno insieme). Si rompe ancora combinando segni e sequenze multi-emoji come flag.

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

Livello 3 - sensibile al grafema: Tratta ogni "personaggio dell'utente" come atomico. Questo è l'approccio veramente corretto.

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

Intl.Segmenter Gestisce emoji, flag, modificatori di tono della pelle e combinando correttamente i segni. È la versione che spedisco in produzione se l'inversione del testo utente con emoji era un vero requisito.

Ecco la stessa operazione tra le lingue, per la pratica e il riferimento di intervista:

# 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

Notare il modello: quasi ogni lingua di "ovvio" inversa è basata su codice o byte e condivide la stessa debolezza Unicode. Raggiungere l'opzione sensibile al grapheme è l'eccezione, non l'impostazione predefinita.

A cosa serve l'inversione delle corde?

Oltre ad essere il canonico riscaldamento dell'intervista, si guadagna la sua mantene in alcuni punti.

Controlli palindromi. Inverti la stringa e confronta con l'originale - se corrispondono, it&#39;s un palindromo Prova racecar, level, o 12321 nello strumento e guarda l'output tornare identico. Per frase palindromi come &quot;un uomo un piano un canal panama," strip spazi e caso prima.

verificando il tuo codice. Quando stai rettificando i problemi di inversione in stile leetcode, incolla l'output previsto nello strumento per sanità mentale, controllalo in un secondo. È un oracolo veloce per il caso di inversione dei caratteri.

Puzzle veloci e testo giocoso. Messaggi arretrati, giochi di parole, post sociali speculari: puntate basse e inversione è il suo inverso, quindi invertire due volte ti restituisce la parte posteriore originale. Quella proprietà è utile per i test: invertire, invertire di nuovo, confermarti&#39;re home.

Una cosa da no usalo per: sicurezza L'inversione è un trucco da festa, non la crittografia - it&#39;s banalmente annullato Si presenta in principiante & quot;obfuscation&quot; tutorial, ma mai trattare il testo invertito come protetto.

Tipo di inversione esempio nello strumento? frammento di codice
caratteri abccba Sì (l'unica modalità) [...s].reverse().join('')
parole a b cc b a No, fallo in codice s.split(' ').reverse().join(' ')
rughe ordine di riga capovolto No, fallo in codice s.split('\n').reverse().join('\n')
Grafema sicuro Emoji Rimani intatto No - ha bisogno di Intl.Segmenter Vedi livello 3 sopra

L'approccio a due puntatori, se ti stai preparando per le interviste

Il motivo per cui gli intervistatori amano questa domanda è che la risposta elegante non usa affatto un rovescio incorporato. Cammini due puntatori l'uno verso l'altro e scambia:

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

Funziona in tempo O (n) e, fatto sul posto su un array mutabile, O (1) spazio extra. In JavaScript le stringhe sono immutabili quindi puoi&#39; t letteralmente scambiare sul posto, ma la logica a due puntatore è ciò che loro&#39; ti stanno controllando. La versione ricorsiva - reverse(s) = last char + reverse(rest)- è più carino ma utilizza lo spazio del call-stack O (n), che è il compromesso che vale la pena menzionare ad alta voce nell'intervista.

E ricorda la proprietà che rende banale il test: l'inversione è la sua stessa inversa. Inverti due volte una corda e sei tornato da dove hai iniziato. Quando test unitario qualsiasi codice di inversione, l'asserzione numero uno di quella affermazione: reverse(reverse(x)) === x per un lotto di input che includono, soprattutto, emoji, il test cattura effettivamente il bug della coppia surrogata invece di nasconderlo.

Domande frequenti

Lo strumento String Reverse supporta l'inversione di parola o riga?

no . Ha una modalità unica che inverte i caratteri. Non esiste una modalità separata per l'ordine delle parole o l'ordine di riga. Se devi invertire l'ordine di parole o righe, fallo in codice con split(' ') oppure split('\n') seguito da .reverse().join(...).

Perché gli emoji escono confusi dopo l'inversione?

Perché lo strumento si inverte con l'unità di codice UTF-16, come JavaScript split(''). Le sequenze emoji e flag vengono memorizzate come coppie surrogate - due unità di codice che hanno senso solo insieme - e l'inversione le divide. Il testo normale e i caratteri CJK sono unità di codice singolo, quindi invertono correttamente.

Gestisce il testo Unicode e CJK?

in parte. I caratteri accentati cinesi, giapponesi, coreani, cirillici e precomposti si invertono correttamente perché ognuno è una singola unità di codice. Emoji, flag emoji e segni di combinazione scomposta si romperanno. Per una gestione completamente corretta nel tuo codice, utilizza Intl.Segmenter con granularità del grafema.

Il mio testo viene inviato a un server?

No. L'inversione avviene localmente nel browser durante la digitazione: il testo non viene mai caricato. Ciò lo rende sicuro per invertire stringhe sensibili o private.

Come faccio a controllare se una parola è un palindromo?

invertirlo con il Stringa inversa strumento e confronto con l'originale Se loro&#39; sono identici, it&#39; è un palindromo Per frasi, rimuovere spazi, punteggiatura e differenze di caso prima di confrontare - & quot; Un uomo un piano un canale Panama&quot; è un palindromo solo dopo la normalizzazione.

Può gestire un testo molto lungo?

si. Poiché è in funzione nel tuo browser, il limite pratico è la memoria del tuo dispositivo, che copre comodamente milioni di caratteri. Inverte il live durante la digitazione, quindi paste estremamente grandi possono sembrare leggermente meno istantanee, ma non c'è nessun viaggio di andata e ritorno del server.

Perché invertire una stringa è una domanda così comune per l'intervista?

Incarta molti fondamenti in un unico piccolo problema: manipolazione di array e stringhe, tecnica a due punterie, compromessi in-place rispetto a quelli di copia, ricorsione e, se l'intervistatore è nitido, casi limite Unicode It&#39; è facile da avviare e ha abbastanza profondità per separare una risposta rapida da una risposta approfondita.

Strumenti correlati:

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!