Este artículo analiza diferentes formas de invertir una cadena en Java con ejemplos.
Ejemplos:

Prerequisite: String vs StringBuilder vs StringBuffer in Java>
A continuación se presentan algunos datos interesantes sobre las clases String y StringBuilder:
- Los objetos de String son inmutables.
- La clase String en Java no tiene el método inverso(); sin embargo, la clase StringBuilder tiene el método inverso() incorporado.
- La clase StringBuilder no tiene el método toCharArray(), mientras que la clase String sí tiene el método toCharArray().
1. The idea is to traverse the length of the string 2. Extract each character while traversing 3. Add each character in front of the existing string>
Implementación:
Java
// java program to reverse a word> import> java.io.*;> import> java.util.Scanner;> class> GFG {> >public> static> void> main (String[] args) {> > >String str=>'Geeks'>, nstr=>''>;> >char> ch;> > >System.out.print(>'Original word: '>);> >System.out.println(>'Geeks'>);>//Example word> > >for> (>int> i=>0>; i { ch= str.charAt(i); //extracts each character nstr= ch+nstr; //adds each character in front of the existing string } System.out.println('Reversed word: '+ nstr); } } //Contributed by Tiyasa> |
>
>Producción
Original word: Geeks Reversed word: skeeG>
Convirtiendo cadena en bytes: El método getBytes() se utiliza para convertir la cadena de entrada en bytes[].
Método:
1. Create a temporary byte[] of length equal to the length of the input string. 2. Store the bytes (which we get by using getBytes() method) in reverse order into the temporary byte[] . 3. Create a new String abject using byte[] to store result.>
Implementación:
Java
// Java program to ReverseString using ByteArray.> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'techcodeview.com'>;> >// getBytes() method to convert string> >// into bytes[].> >byte>[] strAsByteArray = input.getBytes();> >byte>[] result =>new> byte>[strAsByteArray.length];> >// Store result in reverse order into the> >// result byte[]> >for> (>int> i =>0>; i result[i] = strAsByteArray[strAsByteArray.length - i - 1]; System.out.println(new String(result)); } }> |
>
>Producción
skeeGrofskeeG>
Usando el método inverso() de la clase StringBuilder:
La clase String no tiene el método reverse(), necesitamos convertir la cadena de entrada a StringBuilder, lo cual se logra utilizando el método append de StringBuilder. Después de eso, imprima los caracteres de la cadena invertida escaneando desde el primer hasta el último índice.
Implementación:
Java
vlc descargar videos de youtube
// Java program to ReverseString using StringBuilder> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks for Geeks'>;> >StringBuilder input1 =>new> StringBuilder();> >// append a string into StringBuilder input1> >input1.append(input);> >// reverse StringBuilder input1> >input1.reverse();> >// print reversed String> >System.out.println(input1);> >}> }> |
>
>Producción
skeeG rof skeeG>
Conversión de cadena en matriz de caracteres: El usuario ingresa la cadena a invertir.
Método:
1. First, convert String to character array by using the built in Java String class method toCharArray(). 2. Then, scan the string from end to start, and print the character one by one.>
Implementación:
Java
// Java program to Reverse a String by> // converting string to characters one> // by one> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'GeeksForGeeks'>;> >// convert String to character array> >// by using toCharArray> >char>[] try1 = input.toCharArray();> >for> (>int> i = try1.length ->1>; i>=>0>; i--)> >System.out.print(try1[i]);> >}> }> |
>
>Producción
skeeGroFskeeG>
- Convierta la cadena de entrada en una matriz de caracteres usando toCharArray(): Convierta la cadena de entrada en una matriz de caracteres utilizando el método toCharArray() integrado de la clase String. Luego, escanee la matriz de caracteres desde ambos lados, es decir, desde el índice inicial (izquierda) y desde el último índice (derecha) simultáneamente.
1. Set the left index equal to 0 and right index equal to the length of the string -1. 2. Swap the characters of the start index scanning with the last index scanning one by one. After that, increase the left index by 1 (left++) and decrease the right by 1 i.e., (right--) to move on to the next characters in the character array . 3. Continue till left is less than or equal to the right.>
Implementación:
Java
// Java program to Reverse a String using swapping> // of variables> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks For Geeks'>;> >char>[] temparray = input.toCharArray();> >int> left, right =>0>;> >right = temparray.length ->1>;> >for> (left =>0>; left // Swap values of left and right char temp = temparray[left]; temparray[left] = temparray[right]; temparray[right] = temp; } for (char c : temparray) System.out.print(c); System.out.println(); } }> |
comprobar la versión de java en linux
>
>Producción
skeeG roF skeeG>
- Usando el objeto ArrayList: Convierta la cadena de entrada en la matriz de caracteres utilizando el método integrado toCharArray(). Luego, agregue los caracteres de la matriz al objeto ArrayList. Java también ha incorporado el método reverse() para la clase Colecciones. Dado que el método inverso () de la clase Colecciones toma un objeto de lista, para invertir la lista, pasaremos el objeto ArrayList que es un tipo de lista de caracteres.
1. We copy String contents to an object of ArrayList. 1. We create a ListIterator object by using the listIterator() method on the ArrayList object. 2. ListIterator object is used to iterate over the list. 3. ListIterator object helps us to iterate over the reversed list and print it one by one to the output screen.>
Implementación:
Java
// Java program to Reverse a String using ListIterator> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks For Geeks'>;> >char>[] hello = input.toCharArray();> >List trial1 =>new> ArrayList();> >for> (>char> c : hello)> >trial1.add(c);> >Collections.reverse(trial1);> >ListIterator li = trial1.listIterator();> >while> (li.hasNext())> >System.out.print(li.next());> >}> }> |
>
>Producción
skeeG roF skeeG>
Usando StringBuffer:
La clase String no tiene el método inverso(), necesitamos convertir la cadena de entrada a StringBuffer, lo que se logra utilizando el método inverso de StringBuffer.
Implementación:
Java
// Java program to demonstrate conversion from> // String to StringBuffer and reverse of string> import> java.lang.*;> import> java.io.*;> import> java.util.*;> public> class> Test {> >public> static> void> main(String[] args)> >{> >String str =>'Geeks'>;> >// conversion from String object to StringBuffer> >StringBuffer sbr =>new> StringBuffer(str);> >// To reverse the string> >sbr.reverse();> >System.out.println(sbr);> >}> }> |
>
>Producción
skeeG>
- Invertir cadena tomando información del usuario
Java
/*package whatever //do not write package name here */> import> java.io.*;> import> java.util.Scanner;> class> GFG {> >public> static> void> main (String[] args) {> >Scanner scanner =>new> Scanner(System.in);> >String Str = scanner.nextLine();> >char>[] arr = Str.toCharArray();> > >String rev =>''>;> > >for>(>int> i = Str.length() ->1>; i>=>0>; i--)> >{> >rev = rev + Str.charAt(i);> >}> > >System.out.println(rev);> > >}> }> > |
>
>Producción
0>
En el código anterior, esencialmente leemos una Cadena del usuario antes de iniciar un ciclo de iteración para crear una Cadena nueva invertida. La función charAt de la clase String se usa para recuperar cada carácter de la cadena original individualmente desde el final, y el operador + se usa para concatenarlos en una nueva cadena.
Usando pila:
La idea de la pila es que accederemos solo al elemento superior de una pila, por lo que incluye 2 pasos de la siguiente manera:
- Empuja todos los personajes en la pila.
- extraiga todos los caracteres de la pila y agréguelos a la cadena temporal.
A continuación se muestra la implementación del enfoque anterior.
Java
import> java.util.*;> class> GFG {> >public> static> void> main(String[] args) {> > >String s=>'Geeks For Geeks'>;> > >//initializing a stack of type char> >Stack stack=>new> Stack();> > >for>(>char> c:s.toCharArray())> >{> >//pushing all the characters> >stack.push(c);> >}> > >String temp=>''>;> > >while>(!stack.isEmpty())> >{> >//popping all the chars and appending to temp> >temp+=stack.pop();> >}> > >System.out.println(>'Reversed string is : '>+temp);> > >}> }> //This code is contributed by aeroabrar_31> |
>
>Producción
Reversed string is : skeeG roF skeeG>
Complejidad del tiempo: O (N) N es la longitud de la cadena
Espacio auxiliar: O(N) para pila
Artículo relacionado: Diferentes métodos para invertir una cadena en C/C++
Este artículo es una contribución de Señor. Somesh Awasthi .