Ferramenta de Reversão de String
Inverta strings de texto rapidamente com múltiplos modos de reversão
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
- Insira ou cole o texto a ser invertido na caixa de entrada à esquerda
- Selecione um modo de inversão (inverter tudo, inverter palavras, etc.)
- O lado direito exibe automaticamente o resultado invertido
- 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
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 AInverter 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 xofVerificaçã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 intactoInverter 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 startupPerguntas 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.