Salta al contingut

Inversor de Text: Inverteix Text i Gira Caràcters Instantàniament

Eina gratuïta en línia per invertir qualsevol cadena de text instantàniament. Gira caràcters, comprova palíndroms i crea text a l'inrevés. Funciona amb Unicode, emojis i tots els idiomes.

Eina d'Inversió de Text

Introduïu o enganxeu qualsevol text a continuació per invertir instantàniament l'ordre dels caràcters. Veure resultats en temps real mentre escriviu.

Calculadora de càrrega...
📚

Documentació

Què és una Eina d'Inversió de Text?

Un inversor de text (també conegut com a eina de text invers) capgira l'ordre dels caràcters del text —agafant "Hello World" i convertint-lo en "dlroW olleH". Trobaràs que és sorprenentment útil per a tot, des de comprovar si quelcom és un palíndrom fins a crear text en mirall per a treballs de disseny.

L'eina funciona en temps real: enganxa o escriu el teu text, i veuràs instantàniament com s'inverteix. El que fa interessant la inversió de text és que és conceptualment molt simple (només llegir cap enrere), però permet algunes aplicacions realment útils en programació, encriptació i anàlisi de text.

Aquí hi ha quelcom interessant —he vist desenvolupadors usar la inversió de text per depurar, dissenyadors usant-lo per efectes visuals, i educadors per ensenyar manipulació de cadenes. Un escenari comú és quan s'estan treballant algoritmes de detecció de palíndroms i cal verificarràpidament la lògica amb casos de prova.

Com usar l'Inversor de Text

Usar aquesta eina d'inversió de text és molt senzill i es fa en tres passos simples:

  1. Introdueix el teu text al camp d'entrada: escriu directament o enganxa des del portapapers
  2. Observa la màgia mentre el text invertit apareix instantàniament a sota (no cal fer clic a res)
  3. Copia el resultat amb un sol clic mitjançant el botó de còpia

L'eina processa tot en temps real, la qual cosa significa que pots experimentar i veure resultats mentre escrius. Funciona amb qualsevol joc de caràcters: anglès, emojis, símbols especials, fins i tot caràcters Unicode de llengües com el japonès o l'àrab.

Fórmula i Algorisme d'Inversió de Text

Aquí és com funciona la inversió de text matemàticament. Per a una cadena SS de longitud nn amb caràcters S=c1c2c3...cnS = c_1c_2c_3...c_n, la cadena invertida SS' és:

S=cncn1cn2...c1S' = c_nc_{n-1}c_{n-2}...c_1

A la pràctica, els programadors implementen això mitjançant tres enfocaments principals:

  1. Inversió d'Array: Dividir la cadena en caràcters, invertir l'array i després ajuntar-los. El més directe i llegible.
  2. Tècnica de Dos Punters: Començar des de tots dos extrems, intercanviar caràcters mentre s'avança cap al centre. Eficient en memòria quan es pot modificar in situ.
  3. Enfocament Basat en Pila: Apilar caràcters en una pila (estructura LIFO), després treure'ls. Això inverteix naturalment l'ordre i és un gran exemple per ensenyar estructures de dades.

Característiques de rendiment: La inversió de text s'executa amb una complexitat temporal de O(n)O(n) (lineal) perquè cada caràcter es processa exactament un cop. La complexitat espacial també és O(n)O(n) ja que cal emmagatzemar la cadena invertida. Per a la majoria d'usos pràctics amb text de menys de diversos megabytes, el rendiment és instantani.

Una cosa que val la pena assenyalar és que si s'estan invertint arxius de text massius (com registres o conjunts de dades), potser voldreu considerar enfocaments de transmissió per evitar carregar-ho tot a la memòria d'una vegada.

Procés de Reversió de Text Pas a Pas

Deixeu-me explicar exactament com l'algoritme de reversió processa el vostre text:

  1. Comenceu amb un contenidor de resultat buit
  2. Llegiu des de l'últim caràcter de la vostra entrada, movent-vos cap enrere
  3. Afegiu cada caràcter al resultat mentre avanceu
  4. Atureu-vos quan hàgiu arribat al primer caràcter
  5. Retorneu la cadena invertida completada

Exemple pràctic amb "Hello, World!":

1Entrada: "Hello, World!"
2Pas 1: Comenceu amb resultat buit: ""
3Pas 2: Agafeu l'últim caràcter "!" → resultat = "!"
4Pas 3: Agafeu "d" → resultat = "!d"
5Pas 4: Agafeu "l" → resultat = "!dl"
6Pas 5: Continueu per a cada caràcter...
7Resultat final: "!dlroW ,olleH"
8

L'algoritme tracta cada caràcter de manera idèntica, sigui una lletra, número, puntuació, espai o emoji. Tot es preserva a la sortida invertida. Aquest tractament coherent és el motiu pel qual funciona de manera fiable a través de diversos idiomes i conjunts de caràcters.

Casos Límit que Hauríeu de Conèixer

Quan treballeu amb inversió de text, us trobareu amb alguns casos límit interessants:

Cadenes buides: Invertir una cadena buida us dona... una cadena buida. Té sentit, oi? No hi ha res per invertir.

Caràcter únic: Invertiu "A" i obteniu "A". És el seu propi invers, igual que tots els caràcters únics.

Unicode i emojis: Aquí és on les coses es tornen interessants. L'algoritme gestiona Unicode correctament, incloent emojis, caràcters japonesos, escriptura àrab i altres texts no llatins. Proveu-ho amb "こんにちは 🌍" i veureu que funciona correctament.

Espais en blanc i caràcters especials: Espais, tabuladors, salts de línia, puntuació—tot s'inverteix exactament tal com és. "Hello World" (amb 3 espais) es converteix en "dlroW olleH" (encara amb 3 espais).

Text molt llarg: Per a entrades extremadament grans (penseu en megabytes de text), esteu limitats per la memòria disponible. La majoria dels sistemes moderns ho gestionen bé fins a diversos MB, però si esteu processant arxius de gigabytes, voldreu una solució de streaming en lloc de carregar-ho tot a la memòria.

Una cosa que he observat: els caràcters combinats i els clústers de grafemes a vegades es comporten de manera inesperada. Per exemple, els emojis amb modificadors de to de pell tècnicament són múltiples punts de codi Unicode. La majoria d'implementacions ho gestionen correctament, però val la pena provar-ho amb el vostre cas d'ús específic si treballeu amb Unicode complex.

Casos d'ús reals per a la inversió de text

Potser et sorprendrà la freqüència amb què s'utilitza la inversió de text a la pràctica. Aquí hi ha alguns escenaris on l'he vist:

Programació i Desenvolupament

Comprovació de palíndroms: Quan necessites verificar si una paraula es llegeix igual endavant i endarrere, l'inverteixes i compares. Pensa en "racecar" → "racecar" (coincideix = palíndrom).

Pràctica d'algorismes de cadenes: La inversió de text és un problema clàssic d'entrevistes de programació que posa a prova la teva comprensió de la manipulació de cadenes i estructures de dades bàsiques.

Demostracions d'implementació de piles: Invertir text és l'exemple perfecte per ensenyar el comportament LIFO (Last-In-First-Out), ja que una pila inverteix naturalment l'ordre.

Criptografia i Seguretat

Codificació bàsica: Encara que no sigui segura per si mateixa, la inversió de text de vegades s'utilitza com una capa en esquemes de codificació de diversos passos. Es tracta més d'ofuscació que d'encriptació real.

Sistemes de repte-resposta: Alguns sistemes d'autenticació utilitzen cadenes invertides com a part del seu procés de verificació.

Aplicacions creatives i educatives

Jocs de paraules i trencaclosques: Crea reptes on els jugadors identifiquin paraules invertides o desxifrin missatges. Popular en sales d'escapament i aplicacions de trencaclosques.

Efectes d'escriptura en mirall: Els dissenyadors utilitzen text invertit per a logotips, efectes artístics o dissenys visuals que incorporen reflexió.

Eina d'ensenyament: En explicar la manipulació de cadenes a principiants, la inversió de text és prou simple per entendre-la però prou complexa per demostrar conceptes importants com la iteració i el maneig de matrius.

Anàlisi de text

Recerca lingüística: Els investigadors que estudien patrons lingüístics analitzen de vegades el text endavant i endarrere per identificar característiques estructurals.

Detecció de patrons: Comprovar la simetria en text o trobar seqüències invertides incrustades en conjunts de dades més grans.

Diferents tipus d'inversió de text

La inversió caràcter per caràcter no és l'única opció. Depenent del que intentis aconseguir, aquests alternatives podrien funcionar millor:

Inversió de paraules: Mantén cada paraula intacta però capgira el seu ordre. Útil per a l'aprenentatge d'idiomes i certes tasques de processament de text.

  • Exemple: "Hello World" → "World Hello"

Inversió de frases: Capgira l'ordre de les frases mentre es preserva l'ordre de paraules dins de cada frase.

  • Exemple: "Hello World. How are you?" → "How are you? Hello World."

Inversió selectiva: Inverteix només parts específiques basant-te en els teus criteris: potser només vocals, o només paraules més llargues de 5 caràcters. Excel·lent per crear trencaclosques de paraules o anàlisi de patrons.

  • Exemple: Invertint només vocals a "Hello World" → "Hollo Werld"

Inversió fonètica: Utilitzada en recerca lingüística, inverteix sons en lloc de lletres. Requereix primer una transcripció fonètica.

Inversió a nivell de bits: Inverteix la representació binària dels caràcters. Es veu en certes operacions criptogràfiques i manipulació de dades de baix nivell.

La Història de la Inversió de Text

La inversió de text existeix des de fa molt més temps del que podries pensar, abastant sistemes d'escriptura antics fins a la informàtica moderna.

Escriptura Antiga i Text en Mirall

Les civilitzacions antigues van experimentar amb escriptura direccional molt abans que existissin els ordinadors. Els grecs i els egipcis de vegades feien servir l'estil "boustrophedon", on les línies alternaven direcció: d'esquerra a dreta, després de dreta a esquerra, com un bou llaurant un camp (que és el que significa "boustrophedon").

Leonardo da Vinci va omplir famosament els seus quaderns amb escriptura en mirall, on el text apareix invertit. Els historiadors debaten si era per secretisme, perquè era esquerrà i li resultava més còmode, o simplement per evitar taques de tinta. Sigui quin sigui el motiu, els seus quaderns demostren que la inversió de text s'ha fet servir com a tècnica de codificació durant segles.

L'Era Informàtica

Quan els ordinadors van sorgir als anys 50-60, la manipulació de cadenes de text es va convertir en un exercici de programació fonamental. La inversió de text era un dels problemes clàssics que cada programador aprenia, juntament amb l'ordenació i la cerca.

El que ho feia especialment interessant: el desenvolupament d'estructures de dades de pila es connectava naturalment amb la inversió de text. El comportament LIFO (Last-In-First-Out) d'una pila inverteix automàticament l'ordre: introdueix "HOLA" caràcter per caràcter en una pila, treu-los, i obtens "ALOH". Aquesta relació elegant va convertir la inversió de text en un exemple per ensenyar estructures de dades.

Aplicacions Modernes

Avui en dia, trobaràs algoritmes d'inversió de text treballant darrere de l'escenari en:

  • Compiladors i analitzadors: Usats en anàlisi sintàctica i avaluació d'expressions
  • Algoritmes de coincidència de cadenes: Com l'algoritme Boyer-Moore que processa patrons de dreta a esquerra
  • Criptografia: Com a blocs de construcció en esquemes d'encriptació més complexos
  • Processament de llenguatge natural: Analitzant patrons lingüístics, detectant palíndroms i estudiant l'estructura del text

La simplicitat de l'algoritme (és un dels primers que s'aprenen) combinada amb la seva utilitat pràctica garanteix que segueixi sent rellevant dècades després de la seva primera implementació.

Exemples de Codi: Inversió de Text en Diferents Llenguatges

Aquí es mostra com implementar la inversió de text en diversos llenguatges de programació populars. Cada exemple mostra l'algorisme bàsic i el seu ús pràctic:

1' Funció VBA d'Excel per a la Inversió de Text
2Function InvertText(inputText As String) As String
3    Dim i As Integer
4    Dim result As String
5    
6    result = ""
7    For i = Len(inputText) To 1 Step -1
8        result = result & Mid(inputText, i, 1)
9    Next i
10    
11    InvertText = result
12End Function
13' Ús en una cel·la:
14' =InvertText("Hola, Món!")
15

python text_original = "Hola, Món!" text_invertit = invert_text(text_original) print(f"Original: {text_original}") print(f"Invertit: {text_invertit}")

Gestió de caràcters Unicode

text_unicode = "こんにちは世界! 🌍" unicode_invertit = invert_text(text_unicode) print(f"Unicode original: {text_unicode}") print(f"Unicode invertit: {unicode_invertit}")

1
2

javascript function invertText(inputText) { return inputText.split('').reverse().join(''); }

// Exemple d'ús: const textOriginal = "Hola, Món!"; const textInvertit = invertText(textOriginal); console.log(Original: ${textOriginal}); console.log(Invertit: ${textInvertit});

// Gestió de cadenes buides console.log(Cadena buida invertida: "${invertText("")}");

// Gestió de Unicode const textUnicode = "こんにちは世界! 🌍"; console.log(Unicode original: ${textUnicode}); console.log(Unicode invertit: ${invertText(textUnicode)});

1
2

java public class TextInverter { public static String invertText(String inputText) { return new StringBuilder(inputText).reverse().toString(); }

public static void main(String[] args) {
    String textOriginal = "Hola, Món!";
    String textInvertit = invertText(textOriginal);
    
    System.out.println("Original: " + textOriginal);
    System.out.println("Invertit: " + textInvertit);
    
    // Gestió de caràcters Unicode
    String textUnicode = "こんにちは世界! 🌍";
    String unicodeInvertit = invertText(textUnicode);
    System.out.println("Unicode original: " + textUnicode);
    System.out.println("Unicode invertit: " + unicodeInvertit);
}

}

1
2

r invert_text <- function(input_text) {

Convertir a vector de caràcters, invertir i concatenar

paste(rev(strsplit(input_text, "")[[1]]), collapse = "") }

Exemple d'ús

text_original <- "Hola, Món!" text_invertit <- invert_text(text_original) cat("Original:", text_original, "\n") cat("Invertit:", text_invertit, "\n")

1
2

matlab function textInvertit = invertText(inputText) % Funció per invertir l'ordre dels caràcters en una cadena textInvertit = inputText(end:-1:1); end

% Exemple d'ús textOriginal = 'Hola, Món!'; textInvertit = invertText(textOriginal); fprintf('Original: %s\n', textOriginal); fprintf('Invertit: %s\n', textInvertit);

1
2

cpp #include #include #include

std::string invertText(const std::string& inputText) { std::string resultat = inputText; std::reverse(resultat.begin(), resultat.end()); return resultat; }

int main() { std::string textOriginal = "Hola, Món!"; std::string textInvertit = invertText(textOriginal);

std::cout << "Original: " << textOriginal << std::endl;
std::cout << "Invertit: " << textInvertit << std::endl;

// Gestió de cadenes buides
std::cout << "Cadena buida invertida: \"" << invertText("") << "\"" << std::endl;

return 0;

}

1
2

ruby def invert_text(input_text) input_text.reverse end

Exemple d'ús

text_original = "Hola, Món!" text_invertit = invert_text(text_original) puts "Original: #{text_original}" puts "Invertit: #{text_invertit}"

Gestió de caràcters Unicode

text_unicode = "こんにちは世界! 🌍" unicode_invertit = invert_text(text_unicode) puts "Unicode original: #{text_unicode}" puts "Unicode invertit: #{unicode_invertit}"

1
2

php

1
2

rust fn invert_text(input_text: &str) -> String { input_text.chars().rev().collect() }

fn main() { let text_original = "Hola, Món!"; let text_invertit = invert_text(text_original);

println!("Original: {}", text_original);
println!("Invertit: {}", text_invertit);

// Gestió de caràcters Unicode
let text_unicode = "こんにちは世界! 🌍";
let unicode_invertit = invert_text(text_unicode);
println!("Unicode original: {}", text_unicode);
println!("Unicode invertit: {}", unicode_invertit);

}

1
2

csharp using System;

class TextInverter { public static string InvertText(string inputText) { char[] arrayCaracters = inputText.ToCharArray(); Array.Reverse(arrayCaracters); return new string(arrayCaracters); }

static void Main()
{
    string textOriginal = "Hola, Món!";
    string textInvertit = InvertText(textOriginal);
    
    Console.WriteLine($"Original: {textOriginal}");
    Console.WriteLine($"Invertit: {textInvertit}");
    
    // Gestió de cadenes buides
    Console.WriteLine($"Cadena buida invertida: \"{InvertText("")}\"");
    
    // Gestió de caràcters Unicode
    string textUnicode = "こんにちは世界! 🌍";
    string unicodeInvertit = InvertText(textUnicode);
    Console.WriteLine($"Unicode original: {textUnicode}");
    Console.WriteLine($"Unicode invertit: {unicodeInvertit}");
}

}

1
2

go package main

import ( "fmt" )

func invertText(inputText string) string { runes := []rune(inputText) for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { runes[i], runes[j] = runes[j], runes[i] } return string(runes) }

func main() { textOriginal := "Hola, Món!" textInvertit := invertText(textOriginal)

fmt.Printf("Original: %s\n", textOriginal)
fmt.Printf("Invertit: %s\n", textInvertit)

// Gestió de caràcters Unicode
textUnicode := "こんにちは世界! 🌍"
unicodeInvertit := invertText(textUnicode)
fmt.Printf("Unicode original: %s\n", textUnicode)
fmt.Printf("Unicode invertit: %s\n", unicodeInvertit)

}

1
2

swift func invertText(_ inputText: String) -> String { return String(inputText.reversed()) }

// Exemple d'ús let textOriginal = "Hola, Món!" let textInvertit = invertText(textOriginal)

print("Original: (textOriginal)") print("Invertit: (textInvertit)")

// Gestió de caràcters Unicode let textUnicode = "こんにちは世界! 🌍" let unicodeInvertit = invertText(textUnicode) print("Unicode original: (textUnicode)") print("Unicode invertit: (unicodeInvertit)")


## Consells d'Optimització de Rendiment

Si estàs treballant amb inversió de text en codi de producció, aquí hi ha factors de rendiment que val la pena considerar:

**Ús de memòria**: Crear una còpia invertida requereix memòria igual a la mida de la seva entrada. Per a cadenes petites a mitjanes (menys de 1 MB), això és negligible. Per a text més gran, estàs duplicant temporalment l'ús de memòria.

**Inversió in situ**: Llenguatges com C, C++ i Rust et permeten invertir matrius de caràcters directament a la memòria sense crear una còpia. Això redueix l'ús de memòria a la meitat, però només funciona amb cadenes mutables. Molts llenguatges (Python, JavaScript, Java) utilitzen cadenes immutables, així que et veus obligat a crear-ne una de nova.

**Gestió d'Unicode**: Aquí és on les coses es compliquen. Els caràcters Unicode de diversos bytes necessiten un maneig adequat o es corrompria la codificació. La majoria de biblioteques estàndard de llenguatges moderns ho gestionen correctament, però si estàs escrivint codi de baix nivell o treballant directament amb matrius de bytes, ves amb compte. Prova amb emojis i scripts no llatins per verificar.

**Streaming per a arxius grans**: Si estàs invertint arxius de registre o conjunts de dades de gigabytes, no carregueu tot a la memòria. Utilitzeu un enfocament de streaming: llegiu fragments des del final, escriviu-los mentre aneu. Segons l'[Estàndard Tècnic Unicode #18](https://unicode.org/reports/tr18/), el maneig de clústers de grafemes requereix una atenció especial per a la detecció adequada de límits de text.

**Paral·lelització**: Per a cadenes extremadament llargues, teòricament es pot paral·lelitzar la inversió (dividir en fragments, invertir cada un, combinar). A la pràctica, la sobrecàrrega generalment no val la pena llevat que estiguis tractant amb conjunts de dades massives i tinguis recursos de computació per a estalviar.

## Preguntes Freqüents

### Com puc invertir text en línia?

Simplement enganxa o escriu el teu text al camp d'entrada de dalt. L'eina ho inverteix automàticament en temps real—no cal fer clic a cap botó. Copia el resultat amb un sol clic.

### Quina és la diferència entre invertir text i invertir paraules?

La inversió de text (inversió de caràcters) capgira caràcters individuals: "Hello World" → "dlroW olleH". La inversió de paraules manté cada paraula intacta però capgira el seu ordre: "Hello World" → "World Hello". Aquesta eina fa la inversió de caràcters.

### Pot aquesta eina gestionar emojis i caràcters Unicode?

Sí. L'eina gestiona correctament tots els caràcters Unicode, incloent emojis, text xinès/japonès/coreà, escriptura àrab, símbols especials i caràcters combinats. Prova-ho amb "こんにちは 🌍" per comprovar-ho.

### La inversió de text és el mateix que l'escriptura en mirall?

Estan relacionats però no són idèntics. La inversió de caràcters (el que fa aquesta eina) simplement capgira l'ordre dels caràcters. L'escriptura en mirall els gira horitzontalment perquè apareguin com a reflexos en un mirall. Per llegir l'escriptura en mirall, necessites un mirall real o un gir horitzontal.

### Per què necessitaria invertir text?

Usos comuns inclouen: comprovar palíndroms, crear codificació simple per trencaclosques, generar dades de prova per a programació, crear efectes de text artístics, ensenyar algorismes de cadenes i depurar codi de processament de text.

### Si inverteixo text dues vegades, obtinc el text original?

Sí. La inversió de text és la seva pròpia operació inversa. Si inverteixes "Hello" per obtenir "olleH", i després inverteixes "olleH", tornes a obtenir "Hello". Matemàticament, això s'anomena involució.

### Quant de ràpida és la inversió de text?

És molt ràpida—complexitat de temps lineal O(n) on n és la longitud del text. Per a text típic (uns quants paràgrafs), el processament és instantani. Fins i tot per a text molt llarg (milers de paraules), els ordinadors moderns ho gestionen en mil·lisegons.

### Puc invertir text a Excel o Google Sheets?

Sí, però necessites una funció personalitzada ja que no hi ha una funció d'inversió integrada. Consulta la secció d'exemples de codi de dalt per a implementacions en Excel VBA i altres programacions.

## Referències Tècniques

1. Knuth, D. E. (1997). *L'Art de Programació d'Ordinadors, Volum 1: Algorismes Fonamentals* (3a ed.). Addison-Wesley Professional.

2. Sedgewick, R., & Wayne, K. (2011). *Algorismes* (4a ed.). Addison-Wesley Professional.

3. Consorci Unicode. *Estàndard Tècnic Unicode #18: Expressions Regulars Unicode*. Disponible a: https://unicode.org/reports/tr18/

4. Documentació Web MDN. *Referència de Mètodes de Cadena*. Mozilla Developer Network. Disponible a: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

5. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). *Introducció als Algorismes* (3a ed.). MIT Press.