ToolActToolAct

Herramienta de Inversión de Cadenas

Invierte cadenas de texto rápidamente con múltiples modos de inversión

Entrada
Caracteres: 0
Líneas: 0
Salida
Caracteres: 0
Líneas: 0

Seleccionar Modo de Inversión

¿Qué es la Inversión de Cadenas?

String Reverse invierte el orden de los caracteres de un texto y produce la entrada en sentido contrario. La idea es simple, pero el texto real puede ser más complejo que invertir letras ASCII: caracteres Unicode, emojis, acentos combinados, saltos de línea, espacios y escrituras de derecha a izquierda pueden comportarse distinto según cómo se cuenten los caracteres. La herramienta sirve para experimentos de texto, pruebas de palíndromos, pequeños juegos, depuración de cadenas, enseñanza y detección de espacios ocultos o sufijos. No es un método criptográfico ni una forma segura de ocultar datos sensibles. Si hay emojis compuestos o caracteres con varios code points, conviene revisar la salida.

Cómo usar

Operaciones básicas

  1. Escribe o pega el texto a invertir en el cuadro de entrada izquierdo
  2. Selecciona un modo de inversión (invertir todo, invertir palabras, etc.)
  3. El lado derecho muestra automáticamente el resultado invertido
  4. Haz clic en 'Copiar' para copiar el resultado o en 'Intercambiar' para usarlo como entrada y seguir trabajando

Manejo de texto

  • Invertir texto plano es sencillo, pero los emojis, los caracteres combinables y las escrituras de derecha a izquierda pueden dar resultados visuales inesperados.
  • Para código, URL o datos estructurados, invierte solo el segmento deseado en lugar de todo el texto a ciegas.

Casos de uso

Invertir texto a distintos niveles estructuralesElige inversión completa de caracteres, inversión del orden de palabras, inversión de cada palabra, inversión de cada línea, inversión del orden de líneas o inversión del orden de oraciones. La salida se actualiza al cambiar la entrada y puede intercambiarse de nuevo al panel de entrada. Elegir el nivel adecuado mantiene el resultado significativo: invertir palabras reordena la lista, mientras que invertir cada palabra conserva cada elemento intacto y solo voltea sus letras.
Probar transformaciones de texto y casos límiteLos modos a nivel de caracteres usan la sintaxis spread, que maneja muchos caracteres Unicode mejor que una simple inversión de bytes. Los modos de líneas y palabras preservan distintas partes del espacio en blanco según la transformación seleccionada, lo que resulta útil para experimentos rápidos con datos. Pegar entradas complejas como líneas vacías, dobles espacios o tabulaciones finales revela cómo gestiona cada modo los separadores invisibles.
Preparar variantes de texto lúdicas o de diagnósticoInvierte nombres, listas, oraciones o líneas de log para acertijos, datos de prueba, comprobaciones de diseño y comparaciones manuales. Los contadores de líneas y caracteres en ambos paneles ayudan a confirmar si la transformación cambió la estructura o solo el orden. Ambos conteos deben coincidir entre entrada y salida para una inversión pura, lo que convierte una comprobación numérica rápida en una prueba de humo fiable.
Verificar palíndromos incluyendo secuencias de emojiPega una frase y cambia a la inversión a nivel de caracteres para comprobar si se lee igual de izquierda a derecha que de derecha a izquierda. El enfoque basado en spread mantiene los emojis de varios code points y los acentos combinados como unidades únicas, de modo que una cadena de bandera arcoíris invertida sigue agrupando la bandera correctamente. Un palíndromo verdadero debe volver a su forma original tras una sola inversión completa, lo que sirve como comprobación rápida para entradas que parecen simétricas pero no lo son.
Invertir emojis conscientes de grafemas y texto bidi de derecha a izquierdaPara entradas como '👨‍👩‍👧' (un emoji de familia compuesto por hombre, ZWJ, mujer, ZWJ, niña), una inversión ingenua por bytes divide la secuencia en glifos rotos. Esta herramienta itera por cluster de grafema, de modo que un emoji de familia invertido permanece intacto en lugar de convertirse en '👧‍👩‍👨'. Para entradas en árabe o hebreo, el orden visual de derecha a izquierda se conserva por el renderizador; la inversión a nivel de caracteres en los datos seguirá viéndose invertida en pantalla, así que prueba el resultado con la renderización del idioma antes de asumir un error.

Principio técnico

La inversión a nivel de carácter usa la sintaxis spread: [...str].reverse().join(''). El operador spread itera la cadena como una secuencia de puntos de código Unicode, lo que maneja correctamente los caracteres fuera del Plano Multilingüe Básico que ocupan dos unidades de código UTF-16 (pares de sustitución). La alternativa ingenua, str.split('').reverse().join(''), divide en unidades de código y corrompe cualquier emoji como el cohete de fiesta (U+1F389), el cohete (U+1F680) o cualquier carácter por encima de U+FFFF. Los clusters de grafemas añaden otra capa. Un carácter percibido por el usuario como la e con acento agudo combinante (a + ́), un emoji de bandera construido a partir de dos indicadores regionales, o un emoji de familia unido por ZWJ (U+1F468‍ U+1F469‍ U+1F467) ocupa varios puntos de código. La inversión por punto de código aún reordena las piezas, por lo que el emoji de familia se convierte en tres figuras humanas separadas y el acento se separa de la letra base. Intl.Segmenter con granularidad 'grapheme' es la forma compatible con el estándar de iterar clusters de grafemas y mantener estas secuencias intactas durante la inversión. A nivel de operación, el coste es O(n) en el número de segmentos, donde n es la longitud de la cadena en puntos de código o grafemas según la segmentación elegida. Invertir dos veces devuelve la cadena original, lo que hace que la función sea útil para comprobaciones de palíndromos. Para entradas con mucho Unicode, la normalización NFC (str.normalize('NFC')) antes de la inversión colapsa secuencias de base + combinante en formas precompuestas cuando existe una, reduciendo sorpresas en la salida. Las escrituras de derecha a izquierda como el árabe y el hebreo se almacenan en orden lógico pero se renderizan de derecha a izquierda, por lo que una cadena árabe invertida sigue pareciendo invertida aunque el orden de los datos se haya volteado.

  • Inversión por punto de código: [...str].reverse().join('') itera por punto de código y preserva los pares de sustitución por encima de U+FFFF (la mayoría de emojis)
  • Trampa ingenua de bytes: str.split('').reverse().join('') divide en unidades de código UTF-16 y corrompe cualquier carácter por encima de U+FFFF
  • Clusters de grafemas: Intl.Segmenter({ granularity: 'grapheme' }) mantiene intactas las marcas combinantes, secuencias de banderas y emojis ZWJ
  • Inversión a nivel de palabra: split(/\s+/), reverse, join(' '); preserva internamente cada palabra y solo invierte el orden
  • Complejidad: O(n) donde n es el número de segmentos; invertir dos veces devuelve la cadena original
  • Normalización NFC: str.normalize('NFC') pliega secuencias combinantes en formas precompuestas antes de la inversión cuando existe una
  • Texto bidi: el árabe y el hebreo se almacenan en orden lógico; la dirección renderizada es la capa BiDi del navegador, separada de la inversión de datos

Ejemplos

Invertir todos los caracteres (básico)

Modo: Invertir todo
Entrada:  hello world
Salida: dlrow olleh

Entrada:  12345
Salida: 54321

Entrada:  A man a plan a canal Panama
Salida: amanaP lanac a nalp a nam A

Invertir palabras vs invertir cada palabra

Entrada: The quick brown fox

Modo: Invertir palabras (solo el orden de las palabras)
-> fox brown quick The

Modo: Invertir cada palabra (las letras dentro de cada palabra)
-> ehT kciuq nworb xof

Comprobación de palíndromo

Entrada:  racecar
Invertir todo -> racecar    (igual, es palíndromo)

Entrada:  level
Invertir todo -> level       (palíndromo)

Entrada:  hello
Invertir todo -> olleh       (NO es palíndromo)

Seguridad con Unicode y emoji

Entrada:  cafe (con acento agudo combinante en la e)
Inversión ingenua: efac   (el acento se desplaza de la letra)
Consciente de grafemas: efac   (el acento permanece adjunto)

Entrada:  family-emoji-ZWJ-sequence
Inversión ingenua: se rompe en 3 emoji separados
Esta herramienta: mantiene el clúster intacto

Invertir el orden de líneas en un archivo de log

Modo: Invertir orden de líneas
Entrada:
  2026-06-10 09:00  startup
  2026-06-10 09:05  login ok
  2026-06-10 09:10  query slow

Salida (más reciente primero):
  2026-06-10 09:10  query slow
  2026-06-10 09:05  login ok
  2026-06-10 09:00  startup

Preguntas frecuentes

¿Qué hace invertir una cadena?

Devuelve la entrada con los caracteres en orden inverso: 'hello' → 'olleh'. Sirve para cifrados de juguete tipo ROT-13, comprobación de palíndromos, generar texto reflejado o demos rápidas de manipulación de arrays en tutoriales.

¿Invierte correctamente emojis y caracteres CJK?

La mayoría de caracteres CJK y los emojis básicos funcionan bien porque la página usa el operador de propagación ([...text]), que gestiona los pares subrogados de UTF-16. Las secuencias de emojis complejas (familias, banderas, combinaciones con tono de piel) pueden romperse al invertir, ya que están formadas por varios puntos de código que se separan.

¿Qué pasa con los acentos combinantes?

Los caracteres formados por una letra base más marcas combinantes (e + acento agudo → é) se invierten como un único grafema. La entrada en forma descompuesta puede requerir una normalización previa: la página puede aplicar NFC al introducir el texto. El resultado visible para lenguaje natural es correcto en cualquier caso.

¿En qué se diferencia invertir de reflejar?

Invertir es orden de caracteres: 'AB' → 'BA'. Reflejar es un giro visual: 'AB' mostrado como ⟨ƎA⟩, lo que requiere una transformación CSS o caracteres especiales. La página invierte el orden de caracteres, no hace un espejo de píxeles. Para efectos de texto reflejado, usa CSS scaleX(-1).

¿Conserva los saltos de línea?

Por defecto se invierte toda la entrada incluyendo los saltos de línea, así que la última línea queda primero. Activa 'invertir cada línea por separado' para invertir dentro de cada línea manteniendo el orden de líneas, útil para efectos visuales en texto multilínea.

¿El texto invertido siempre se puede leer?

Los idiomas que se leen de izquierda a derecha (inglés, chino, japonés) se vuelven ilegibles al invertirlos. Los idiomas de derecha a izquierda (árabe, hebreo) pueden parecer algo legibles, pero también se rompen porque el algoritmo bidireccional choca con la inversión. La inversión es sobre todo un ejercicio de código o un acertijo, no una transformación de texto real.

¿Se sube mi texto?

No. La inversión se ejecuta en tu navegador. El texto pegado no se transmite.