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.
Ferramentas relacionadas
Ferramenta de Comparação de Texto
Ferramenta de comparação de texto online gratuita destacando diferenças entre dois textos. Comparação linha por linha, encontre rapidamente conteúdo adicionado, removido, modificado.
Ferramenta de Conversão Chinês
Conversor chinês online gratuito para conversão de Chinês Simplificado para Tradicional. Suporte a padrões da China continental, Taiwan, Hong Kong, gerencie diferenças de vocabulário regional.
Editor Markdown
Editor Markdown online gratuito com visualização em tempo real, destaque de sintaxe e exportação HTML. Suporte a tabelas, blocos de código, diagramas, escreva mais eficientemente.
Conversor de Maiúsculas
Conversor de maiúsculas/minúsculas online gratuito suportando camelCase, snake_case, kebab-case, CONSTANT e mais formatos de nomenclatura. Essencial para desenvolvedores, converta nomes de variáveis instantaneamente.
Ferramenta de Teste Regex
Testador de regex online gratuito com correspondência em tempo real e resultados destacados. Suporte a biblioteca de regex comum, ajude a depurar e validar expressões regulares.
Ferramenta de Contagem de Palavras
Contador de palavras online gratuito com estatísticas em tempo real para caracteres, palavras, tempo de leitura e mais. Ferramenta essencial para escritores.
