ToolActToolAct

Ferramenta de Reversão de String

Inverta strings de texto rapidamente com múltiplos modos de reversão

Entrada
Caracteres: 0
Linhas: 0
Saída
Caracteres: 0
Linhas: 0

Selecione Modo de Reversão

O que é Reversão de String?

String Reverse inverte a ordem dos caracteres de um texto e produz a entrada ao contrário. A ideia é simples, mas texto real pode ser mais complexo que inverter letras ASCII: caracteres Unicode, emojis, acentos combinados, quebras de linha, espaços e escritas da direita para a esquerda podem se comportar de modo diferente conforme a contagem de caracteres. A ferramenta é útil para experimentos de texto, testes de palíndromo, pequenos jogos, depuração de strings, ensino e descoberta de espaços ou sufixos ocultos. Ela não é método criptográfico nem forma segura de mascarar dados sensíveis. Se houver emojis compostos ou caracteres com vários code points, revise a saída.

Como Usar

Operações Básicas

  1. Insira ou cole o texto a ser invertido na caixa de entrada à esquerda
  2. Selecione um modo de inversão (inverter tudo, inverter palavras, etc.)
  3. O lado direito exibe automaticamente o resultado invertido
  4. Clique em 'Copiar' para copiar o resultado ou 'Trocar' para usar o resultado como entrada para operações adicionais

Tratamento de Texto

  • Inverter texto simples é direto, mas emoji, combining marks e scripts da direita para a esquerda podem produzir resultados visuais inesperados.
  • Para código, URLs ou dados estruturados, inverta apenas o segmento desejado em vez de todo o texto indiscriminadamente.

Casos de uso

Inverter texto em diferentes níveis estruturaisEscolha inversão completa de caracteres, inversão da ordem das palavras, inversão de cada palavra, inversão de cada linha, inversão da ordem das linhas ou inversão da ordem das frases. A saída é atualizada conforme a entrada muda e pode ser trocada de volta para o painel de entrada. Escolher o nível correto mantém o resultado significativo: inverter as palavras embaralha a lista, enquanto inverter cada palavra mantém cada item intacto e apenas inverte suas letras.
Testar transformações de texto e casos extremosOs modos em nível de caractere usam spread syntax, que lida melhor com muitos caracteres Unicode do que simples inversão de bytes. Os modos de linha e palavra preservam diferentes partes dos espaços em branco conforme a transformação selecionada, sendo útil para experimentos rápidos com dados. Colar entradas complexas como linhas vazias, espaços duplos ou tabs finais revela como cada modo lida com separadores invisíveis.
Preparar variantes de texto lúdicas ou diagnósticasInverta nomes, listas, frases ou linhas de log para jogos, dados de teste, verificações de layout e comparações manuais. As contagens de linhas e caracteres em ambos os painéis ajudam a confirmar se a transformação alterou a estrutura ou apenas a ordenação. As duas contagens devem coincidir entre entrada e saída para uma inversão pura, o que torna uma verificação numérica rápida um teste confiável.
Verificar palíndromos incluindo sequências de emojiCole uma frase e mude para a inversão em nível de caractere para verificar se ela se lê da mesma forma de trás para frente. A abordagem baseada em spread mantém emojis de múltiplos code points e acentos combinados como unidades únicas, então uma string de bandeira arco-íris invertida ainda agrupa a bandeira corretamente. Um palíndromo verdadeiro deve retornar à sua forma original após uma única passagem de inversão completa, o que é uma verificação rápida para entradas que parecem simétricas mas não são.
Inverter emojis baseados em grafemas e texto bidi RTLPara entradas como um emoji de família (composto por homem, ZWJ, mulher, ZWJ, menina), uma inversão ingênua de bytes divide a sequência em glifos quebrados. Esta ferramenta itera por cluster de grafema, então um emoji de família invertido permanece intacto em vez de se tornar uma sequência fragmentada. Para entradas em árabe ou hebraico, a ordem visual da direita para a esquerda é preservada pelo renderizador; a inversão em nível de caractere nos dados ainda parecerá invertida na tela, então teste o resultado com a renderização do idioma antes de assumir um bug.

Princípio técnico

A reversão em nível de caractere usa a sintaxe spread: [...str].reverse().join(''). O operador spread itera a string como uma sequência de code points Unicode, o que trata corretamente caracteres fora do Basic Multilingual Plane que ocupam duas unidades de código UTF-16 (pares de substituição). A alternativa ingênua, str.split('').reverse().join(''), divide em unidades de código e corrompe qualquer emoji como o confete 🎉 (U+1F389), o foguete 🚀 (U+1F680) ou qualquer caractere acima de U+FFFF. Os clusters de grafema adicionam outra camada. Um caractere percebido pelo usuário como o café com acento agudo combinante (a + ◌́), um emoji de bandeira construído a partir de dois indicadores regionais, ou um emoji de família unido por ZWJ 👨‍👩‍👧 é composto por vários code points. A reversão por code point ainda reorganiza as partes, de modo que o emoji de família se torna três figuras humanas separadas e o acento se desloca da letra base. Intl.Segmenter com granularity: 'grapheme' é a maneira padronizada de iterar clusters de grafema e manter essas sequências intactas durante a reversão. No nível de operação, o custo é O(n) no número de segmentos, onde n é o comprimento da string em code points ou grafemas dependendo da segmentação escolhida. Reverter duas vezes produz a string original, o que torna a função útil para verificação de palíndromos. Para entrada com muitos Unicode, a normalização NFC (str.normalize('NFC')) antes da reversão colapsa sequências base + combinante em formas precompostas quando uma existe, reduzindo surpresas na saída. Escritas da direita para a esquerda como árabe e hebraico são armazenadas em ordem lógica mas renderizadas da direita para a esquerda, então uma string árabe revertida ainda parece invertida mesmo que a ordem dos dados tenha sido alterada.

  • Reversão por code point: [...str].reverse().join('') itera por code point e preserva pares de substituição acima de U+FFFF (maioria dos emoji)
  • Armadilha ingênua de bytes: str.split('').reverse().join('') divide em unidades de código UTF-16 e corrompe qualquer caractere acima de U+FFFF
  • Clusters de grafema: Intl.Segmenter({ granularity: 'grapheme' }) mantém marcas combinantes, sequências de bandeiras e emoji ZWJ 👨‍👩‍👧 intactos
  • Reversão em nível de palavra: split(/\s+/), reverse, join(' '); preserva cada palavra internamente e apenas inverte a ordem
  • Complexidade: O(n) onde n é o número de segmentos; reverter duas vezes retorna a string original
  • Normalização NFC: str.normalize('NFC') colapsa sequências combinantes em formas precompostas antes da reversão quando uma existe
  • Texto bidi: árabe e hebraico são armazenados em ordem lógica; a direção renderizada é a camada BiDi do navegador, separada da reversão dos dados

Exemplos

Inverter todos os caracteres (básico)

Modo: Inverter Tudo
Entrada:  hello world
Saída: dlrow olleh

Entrada:  12345
Saída: 54321

Entrada:  A man a plan a canal Panama
Saída: amanaP lanac a nalp a nam A

Inverter palavras vs inverter cada palavra

Entrada: The quick brown fox

Modo: Inverter Palavras (apenas a ordem das palavras)
-> fox brown quick The

Modo: Inverter Cada Palavra (letras dentro de cada palavra)
-> ehT kciuq nworb xof

Verificação de palíndromo

Entrada:  racecar
Inverter Tudo -> racecar    (igual, é palíndromo)

Entrada:  level
Inverter Tudo -> level       (palíndromo)

Entrada:  hello
Inverter Tudo -> olleh       (NÃO é palíndromo)

Segurança com Unicode e emoji

Entrada:  cafe (com acento agudo combinante no e)
Inversão ingênua: efac   (acento se desloca da letra)
Com reconhecimento de grafema: efac   (acento permanece anexado)

Entrada:  family-emoji-ZWJ-sequence
Inversão ingênua: quebra em 3 emojis separados
Esta ferramenta: mantém o cluster intacto

Inverter a ordem das linhas em um arquivo de log

Modo: Inverter Ordem das Linhas
Entrada:
  2026-06-10 09:00  startup
  2026-06-10 09:05  login ok
  2026-06-10 09:10  query slow

Saída (mais recente primeiro):
  2026-06-10 09:10  query slow
  2026-06-10 09:05  login ok
  2026-06-10 09:00  startup

Perguntas frequentes

O que a inversão de string faz?

Retorna a entrada com os caracteres em ordem inversa: 'hello' → 'olleh'. Útil para cifras de brinquedo no estilo ROT-13, verificação de palíndromos, geração de texto espelhado ou demonstrações rápidas de manipulação de array em tutoriais.

Ela inverte emoji e CJK corretamente?

A maioria dos caracteres CJK e emojis básicos funcionam corretamente porque a página usa o operador spread ([...text]), que lida com pares substitutos UTF-16. Sequências de emoji complexas (emoji de família, bandeira, combinações de tom de pele) podem quebrar durante a inversão, pois consistem em múltiplos code points que acabam separados.

O que acontece com acentos combinantes?

Caracteres formados por uma letra base mais marcas combinantes (e + agudo → é) são invertidos como um único grafema. Entradas em forma decomposta podem precisar de normalização primeiro — a página pode aplicar NFC na entrada para lidar com isso. O resultado visual para linguagem natural fica correto de qualquer forma.

Como a inversão difere de uma imagem espelhada?

Inversão é ordem dos caracteres: 'AB' → 'BA'. Espelhamento é flip visual: 'AB' exibido como ⟨ƎA⟩, exigindo CSS transform ou caracteres especiais. A página inverte a ordem dos caracteres, não faz espelhamento de pixels. Para efeitos de texto espelhado, use CSS scaleX(-1).

Ela preserva quebras de linha?

Por padrão, toda a entrada é invertida, incluindo as quebras de linha, então a última linha acaba primeiro. Ative 'inverter cada linha individualmente' para inverter dentro das linhas mantendo a ordem delas, útil para efeitos visuais em texto multilinha.

Texto invertido é sempre legível?

Idiomas que se leem da esquerda para a direita (português, inglês, chinês, japonês) ficam ilegíveis quando invertidos. Idiomas da direita para a esquerda (árabe, hebraico) podem ficar estranhamente legíveis, mas também quebram porque o algoritmo bidi briga com a inversão. A inversão é principalmente um exercício de código ou enigma, não uma transformação real de texto.

Meu texto é enviado para algum servidor?

Não. A inversão roda no seu navegador. O texto colado não é transmitido.