Pular para o conteúdo

Inversor de Texto: Inverta Texto e Vire Caracteres Instantaneamente

Ferramenta online gratuita de inversão de texto para reverter qualquer sequência instantaneamente. Vire caracteres, verifique palíndromos e crie texto ao contrário. Funciona com Unicode, emojis e todos os idiomas.

Ferramenta de Inversão de Texto

Digite ou cole qualquer texto abaixo para inverter instantaneamente a ordem dos caracteres. Veja os resultados em tempo real enquanto digita.

Calculadora de carregamento...
📚

Documentação

O que é um inversor de texto?

Um inversor de texto é uma ferramenta que inverte a ordem dos caracteres em um trecho de texto. Digitar "hello" produz "olleh". Ela funciona escrevendo cada caractere da entrada de trás para a frente, do último ao primeiro. As pessoas a utilizam para criar texto invertido, verificar se uma palavra é um palíndromo ou estudar como funciona a inversão de strings na programação.

Como usar o inversor de texto

  1. Digite ou cole o texto na caixa de entrada.
  2. O texto invertido aparece abaixo assim que a digitação termina. Não é necessário pressionar nenhum botão.
  3. Pressione o botão de copiar para copiar o resultado.

O botão de redefinir limpa a entrada e o resultado. A ferramenta aceita até 10.000 caracteres; uma entrada mais longa exibe uma mensagem de erro pedindo que o texto seja encurtado. O limite conta unidades de código UTF-16, as pequenas partes em que um navegador guarda o texto, então a maioria dos emojis conta como dois.

Fórmula de inversão de texto

Para uma string de comprimento n formada pelos caracteres c1c2…cnc_1 c_2 \dots c_n, a string invertida é:

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

Em termos simples: o último caractere se torna o primeiro, o penúltimo se torna o segundo, e assim por diante, até que o primeiro caractere se torne o último.

Como o algoritmo funciona, passo a passo

  1. Comece com um resultado vazio.
  2. Pegue o último caractere da entrada e adicione-o ao resultado.
  3. Pegue o penúltimo caractere e adicione-o.
  4. Repita até que todos os caracteres tenham sido adicionados, na ordem inversa.

A maioria das ferramentas de inversão trabalha com caracteres individuais do computador. Esta ferramenta, em vez disso, agrupa cada emoji, bandeira e letra acentuada em uma única unidade antes de inverter, usando um método chamado segmentação por grafemas. A seção abaixo explica por que isso importa.

Exemplo resolvido

Entrada: Hello, World!

Invertido: !dlroW ,olleH

Cada caractere, incluindo a vírgula, o espaço e o ponto de exclamação, mantém sua identidade. Apenas a ordem muda.

Tratamento de emojis, acentos e outros caracteres Unicode

Um único caractere visível, como um emoji ou uma letra com acento, costuma ser guardado como mais de uma unidade oculta. O Unicode chama o caractere visível de "user-perceived character" (caractere percebido pelo usuário) ou cluster de grafemas, e ele pode ser formado por vários pontos de código. Um ponto de código é um caractere Unicode numerado, como uma letra ou um sinal de acento separado. Os navegadores também guardam muitos pontos de código, entre eles a maioria dos emojis, como duas unidades de código menores. Um método de inversão que vira essas unidades uma a uma, sem considerar quais pertencem ao mesmo caractere, pode partir um caractere ao meio.

Por exemplo, "Hello 👍" contém um emoji de polegar para cima formado por um par de unidades ocultas. Uma inversão básica por unidade pode separar esse par e produzir símbolos corrompidos em vez do emoji. Esta ferramenta evita esse problema tratando cada emoji, bandeira e letra acentuada como uma unidade, de modo que "Hello 👍" se torna corretamente "👍 olleH". Um emoji de bandeira, formado por dois símbolos ocultos que representam o código de um país, também permanece intacto: "🇺🇸 USA" é invertido para "ASU 🇺🇸", em vez de a bandeira ser separada.

Usos comuns

  • Verificação de palíndromos: um palíndromo é lido da mesma forma para a frente e para trás, como "racecar". Comparar uma palavra com sua inversão é uma maneira de verificar isso.
  • Aprendizado de programação: inverter uma string é um exercício comum para praticar laços, arrays e pilhas.
  • Jogos de palavras e quebra-cabeças: palavras invertidas são usadas para ocultar mensagens em quebra-cabeças e salas de fuga.
  • Efeitos de design: alguns designers invertem textos para criar logotipos espelhados ou efeitos visuais.
  • Depuração: comparar o texto normal com o invertido pode ajudar a identificar certos erros de dados.

Inversão de caracteres versus inversão de palavras

Essas duas operações costumam ser confundidas.

  • Inversão de caracteres (o que esta ferramenta faz): todos os caracteres são invertidos. "Hello World" vira "dlroW olleH".
  • Inversão de palavras: cada palavra permanece intacta, mas a ordem das palavras muda. "Hello World" vira "World Hello".

Uma breve história

A escrita invertida e espelhada existe há milhares de anos, antes dos computadores. Algumas inscrições gregas antigas usavam um estilo chamado boustrophedon, no qual as linhas alternavam de direção, da esquerda para a direita e depois da direita para a esquerda, de modo semelhante ao arado de um boi em um campo. Leonardo da Vinci escreveu grande parte de seus cadernos em escrita espelhada, legível apenas quando colocada diante de um espelho; os historiadores ainda discutem se ele fazia isso por sigilo, para escrever com mais conforto por ser canhoto ou para evitar que a tinta borrasse.

Na computação, inverter uma string é um exercício padrão de programação desde os primórdios da ciência da computação. Ele é frequentemente usado para ensinar como pilhas e arrays funcionam, pois empilhar caracteres e depois desempilhá-los inverte automaticamente sua ordem.

Como inverter texto em código

A maioria das linguagens de programação inclui uma forma integrada ou simples de inverter uma string:

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

Os dois exemplos invertem o texto corretamente para letras e números comuns e para emojis de unidade única, como 🌍. Ainda assim, podem separar um caractere formado por várias unidades ocultas, como algumas bandeiras em emoji, letras acentuadas digitadas com um sinal de acento separado ou emojis de família unidos por caracteres conectores especiais. A inversão completa e segura para grafemas, o método que esta ferramenta usa, exige uma função específica, como o Intl.Segmenter do JavaScript.

Desempenho

A inversão de texto leva tempo linear: o algoritmo examina cada caractere exatamente uma vez, portanto dobrar a entrada aproximadamente dobra o trabalho. Para textos comuns, de uma única palavra a várias páginas, o resultado aparece praticamente instantaneamente. Arquivos muito grandes, na faixa de megabytes ou maiores, são mais bem processados por programas especializados que processam os dados em fluxo, em vez de carregá-los todos na memória de uma só vez.

Perguntas frequentes

Como inverter texto online?

Cole ou digite o texto na caixa acima. O texto invertido aparece automaticamente assim que a digitação termina. Use o botão de copiar para copiar o resultado.

Existe um limite máximo de comprimento do texto?

Sim. A ferramenta aceita até 10.000 caracteres, contados como unidades de código UTF-16, então um emoji geralmente conta como dois. Uma entrada mais longa gera uma mensagem de erro em vez de um resultado.

A ferramenta inverte palavras ou apenas caracteres?

Ela inverte os caracteres individuais, não a ordem das palavras. "Hello World" vira "dlroW olleH", e não "World Hello".

Ela lida com emojis e textos em outros idiomas?

Sim. A ferramenta trata emojis, bandeiras e letras acentuadas como unidades únicas, para que permaneçam intactos após a inversão. Ela também funciona com qualquer sistema de escrita, incluindo textos em chinês, árabe e cirílico.

Se eu inverter o texto duas vezes, obtenho o original de volta?

Para texto comum, sim. Inverter uma cadeia já invertida restaura o original. Uma função com essa propriedade é chamada de involução. Casos raros, como um texto que começa com um sinal de acento isolado, podem se juntar a outro cluster de grafemas após a primeira inversão, de modo que a segunda inversão pode não coincidir exatamente.

O texto invertido é útil para criptografia?

Não. Inverter caracteres não é seguro. Isso apenas oculta o texto visualmente, e qualquer pessoa que o inverta novamente poderá lê-lo.

Referências

  1. The Unicode Consortium. Unicode Standard Annex #29: Unicode Text Segmentation. UAX #29 — clusters de grafemas ("user-perceived characters") formados por vários pontos de código; sequências de bandeiras mantidas juntas.
  2. MDN Web Docs. Intl.Segmenter. MDN: Intl.Segmenter — API do JavaScript que divide uma cadeia de texto em grafemas, palavras ou frases.
  3. MDN Web Docs. String: length. MDN: String length — o comprimento de uma string em JavaScript conta unidades de código UTF-16; um caractere pode ocupar uma ou duas.