Vai al contenuto

Invertitore di Testo: Inverti Testo e Capovolgi Caratteri Istantaneamente

Strumento online gratuito per invertire qualsiasi stringa istantaneamente. Capovolgi caratteri, verifica palindromi e crea testo al contrario. Funziona con Unicode, emoji e tutte le lingue.

Strumento di Inversione Testo

Inserisci o incolla qualsiasi testo qui sotto per invertire istantaneamente l'ordine dei caratteri. Vedi i risultati in tempo reale mentre digiti.

Calcolatore di caricamento...
📚

Documentazione

Che cos'è un invertitore di testo?

Un invertitore di testo è uno strumento che inverte l'ordine dei caratteri in un testo. Digitando "hello" si ottiene "olleh". Funziona scrivendo ogni carattere dell'input al contrario, dall'ultimo al primo. Viene usato per creare testo invertito, verificare se una parola è un palindromo o studiare il funzionamento dell'inversione delle stringhe nella programmazione.

Come usare l'invertitore di testo

  1. Digita o incolla il testo nella casella di input.
  2. Il testo invertito appare sotto non appena si smette di digitare. Non è necessario premere alcun pulsante.
  3. Premere il pulsante di copia per copiare il risultato.

Il pulsante di reimpostazione cancella sia l'input sia il risultato. Lo strumento accetta fino a 10.000 caratteri; un input più lungo mostra un messaggio di errore che chiede di accorciare il testo. Il conteggio si basa sui caratteri visibili, quindi un'emoji conta come un carattere anche se il computer la memorizza come più unità.

Formula per l'inversione del testo

Per una stringa di lunghezza n composta dai caratteri c1c2…cnc_1 c_2 \dots c_n, la stringa invertita è:

S′=cncn−1…c2c1S' = c_n c_{n-1} \dots c_2 c_1

In parole semplici: l'ultimo carattere diventa il primo, il penultimo diventa il secondo e così via, finché il primo carattere diventa l'ultimo.

Come funziona l'algoritmo, passo dopo passo

  1. Iniziare con un risultato vuoto.
  2. Prendere l'ultimo carattere dell'input e aggiungerlo al risultato.
  3. Prendere il penultimo carattere e aggiungerlo.
  4. Ripetere finché tutti i caratteri non sono stati aggiunti, in ordine inverso.

La maggior parte degli strumenti di inversione opera sui singoli caratteri del computer. Questo strumento raggruppa invece ogni emoji, bandiera e lettera accentata in una singola unità prima di invertirli, usando un metodo chiamato segmentazione dei cluster grafemici. La sezione seguente spiega perché questo è importante.

Esempio svolto

Input: Hello, World!

Invertito: !dlroW ,olleH

Ogni carattere, inclusi la virgola, lo spazio e il punto esclamativo, mantiene la propria identità. Cambia solo l'ordine.

Gestione di emoji, accenti e altri caratteri Unicode

I computer spesso memorizzano un singolo carattere visibile, come un'emoji o una lettera accentata, come più unità chiamate punti di codice. Un metodo di inversione che capovolge queste unità una alla volta, senza considerare quali appartengano insieme, può separare un carattere.

Per esempio, "Hello 👍" contiene un'emoji raffigurante un pollice in su composta da una coppia di unità nascoste. Una semplice inversione per unità può separare quella coppia e produrre simboli deformati invece dell'emoji. Questo strumento evita il problema trattando ogni emoji, bandiera e lettera accentata come una singola unità, così "Hello 👍" diventa correttamente "👍 olleH". Anche un'emoji con una bandiera, composta da due simboli nascosti che rappresentano il codice di un Paese, rimane intatta: "🇺🇸 USA" diventa "ASU 🇺🇸" invece di separarsi.

Usi comuni

  • Verifica dei palindromi: un palindromo si legge allo stesso modo in avanti e all'indietro, come "racecar". Confrontare una parola con la sua inversione è un modo per verificarlo.
  • Imparare a programmare: invertire una stringa è un esercizio comune per fare pratica con cicli, array e pile.
  • Giochi di parole e rompicapi: le parole invertite vengono usate per nascondere messaggi negli enigmi e nelle escape room.
  • Effetti grafici: alcuni designer invertono il testo per creare loghi speculari o effetti visivi.
  • Debug: confrontare il testo normale con quello invertito può aiutare a individuare alcuni errori nei dati.

Inversione dei caratteri e inversione delle parole

Queste due operazioni vengono spesso confuse.

  • Inversione dei caratteri (ciò che fa questo strumento): ogni carattere viene invertito. "Hello World" diventa "dlroW olleH".
  • Inversione delle parole: ogni parola resta intatta, ma cambia l'ordine delle parole. "Hello World" diventa "World Hello".

Una breve storia

La scrittura invertita e speculare precede i computer di migliaia di anni. Alcune iscrizioni dell'antica Grecia usavano uno stile chiamato bustrofedico, in cui le righe alternavano la direzione, da sinistra a destra e poi da destra a sinistra, come il percorso di un bue che ara un campo. Leonardo da Vinci scrisse gran parte dei suoi taccuini in scrittura speculare, leggibile solo tenendoli davanti a uno specchio; gli storici discutono ancora se lo facesse per mantenere il segreto, per comodità in quanto mancino o per evitare di sbavare l'inchiostro.

In informatica, invertire una stringa è un esercizio standard di programmazione fin dagli albori dell'informatica. Viene spesso usato per insegnare il funzionamento delle pile e degli array, poiché inserire i caratteri in una pila ed estrarli ne inverte automaticamente l'ordine.

Come invertire il testo nel codice

La maggior parte dei linguaggi di programmazione include un metodo integrato o semplice per invertire una stringa:

1text = "Hello, World!"
2print(text[::-1])  # !dlroW ,olleH
3

Entrambi gli esempi invertono correttamente il testo per le lettere e i numeri comuni e per le emoji costituite da una singola unità, come 🌍. Possono comunque separare un carattere composto da più unità nascoste, come alcune emoji con bandiere, le lettere accentate digitate con un segno d'accento separato o le emoji di famiglie unite da caratteri speciali di collegamento. Per invertire il testo in modo completamente sicuro per i grafemi, come fa questo strumento, serve una funzione dedicata, come Intl.Segmenter di JavaScript.

Prestazioni

L'inversione del testo richiede un tempo lineare: l'algoritmo esamina ogni carattere una sola volta, quindi raddoppiare l'input raddoppia all'incirca il lavoro. Per il testo ordinario, da una singola parola a diverse pagine, il risultato appare praticamente all'istante. I file molto grandi, nell'ordine dei megabyte e oltre, vengono gestiti meglio da programmi specializzati che elaborano i dati in streaming invece di caricarli tutti contemporaneamente in memoria.

Domande frequenti

Come si inverte il testo online?

Incollare o digitare il testo nel riquadro sopra. Il testo invertito appare automaticamente non appena si smette di digitare. Usare il pulsante di copia per copiare il risultato.

Esiste una lunghezza massima del testo?

Sì. Lo strumento accetta fino a 10.000 caratteri. Un input più lungo produce un messaggio di errore invece del risultato. I caratteri vengono conteggiati in base al loro aspetto sullo schermo, quindi un'emoji o una lettera accentata conta come una sola, non due.

Questo strumento inverte le parole o solo i caratteri?

Inverte i singoli caratteri, non l'ordine delle parole. "Hello World" diventa "dlroW olleH", non "World Hello".

Può gestire emoji e testo non inglese?

Sì. Lo strumento tratta emoji, bandiere e lettere accentate come singole unità, così rimangono intatte dopo l'inversione. Funziona anche con qualsiasi sistema di scrittura, compresi i testi in cinese, arabo e cirillico.

Se inverto due volte il testo, ottengo di nuovo l'originale?

Sì. Invertire una stringa invertita ripristina il testo originale. Questa proprietà si chiama involuzione.

Il testo invertito è utile per la crittografia?

No. Invertire i caratteri non è sicuro. Nasconde il testo solo visivamente e chiunque lo inverta di nuovo può leggerlo.

Riferimenti

  1. Unicode Consortium. Unicode Standard Annex #29: segmentazione del testo Unicode.
  2. Cormen, T. H., Leiserson, C. E., Rivest, R. L. e Stein, C. (2009). Introduzione agli algoritmi (edizione 3). MIT Press.
  3. MDN Web Docs. Intl.Segmenter. Mozilla Developer Network.