¿Cómo hacer una cadena inversa en Java?

Publicado: 2023-01-06

Una cadena es una secuencia de caracteres y se trata como un objeto en Java. Es un objeto en Java que almacena los datos en una matriz de caracteres. Una cadena que está invertida se llama cadena invertida. Por ejemplo, el reverso de la cadena 'programa' es 'margorP'.

Tabla de contenido

La lógica detrás de la inversión de cadenas en Java:

Hay varias formas disponibles para invertir una cadena, y cada una usa funciones separadas. Aunque los métodos utilizados son diferentes, el proceso fundamental detrás de la inversión de la cuerda es casi el mismo. La lógica típica utilizada es:

  • Ingrese una cadena usando la entrada del usuario o en el código.
  • Tome los caracteres de la cadena que comienzan desde la última posición y guárdelos en cualquier variable.
  • Muestre la salida.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Varios métodos para invertir la cadena en Java:

  1. Usando StringBuffer o StringBuilder
  2. Uso de la iteración inversa
  3. Usando el método charAt()
  4. Usando el objeto ArrayList
  5. Usando recursividad
  6. Convertir cadena a bytes
  7. Usando la pila

Veamos cada uno de estos métodos en detalle.

Cursos y artículos populares sobre ingeniería de software

Programas Populares
Programa PG Ejecutivo en Desarrollo de Software - IIIT B Programa de Certificación Blockchain - PURDUE Programa de Certificado de Ciberseguridad - PURDUE MSC en Ciencias de la Computación - IIIT B
Otros artículos populares
Salario de ingeniero de nube en los EE. UU. 2021-22 Salario del arquitecto de soluciones de AWS en EE. UU. Salario de desarrollador de backend en los EE. UU. Salario de desarrollador front-end en EE. UU.
Salario de desarrollador web en EE. UU. Preguntas de la entrevista de Scrum Master en 2022 ¿Cómo iniciar una carrera en seguridad cibernética en 2022? Opciones de carrera en los EE. UU. para estudiantes de ingeniería

1. Por StringBuilder/StringBuffer

La clase StringBuffer o StringBuilder tiene un método incorporado reverse() que invierte los caracteres en la cadena. Sustituye la secuencia de caracteres en orden inverso. Este método es el método estático que implementa la lógica para invertir la cadena en Java .

StringBuffer y StringBuilder son dos clases de utilidad en Java que administran la asignación de recursos de manipulaciones de cadenas.

Usando StringBuffer:

Programa Java que invierte una cadena usando StringBuffer:

ejemplo de clase pública de cadena inversa{

public static void main(String[] args) {

Cadena str1 = "manzana";

//almacena el orden inverso de las cadenas en la variable rev

String rev = nuevo StringBuffer(str1).reverse().toString();

//imprime la cadena antes de invertir

System.out.println(“\La cadena antes de la inversión es: “+str1);

//imprime la cadena después del reverso

System.out.println(“La cadena después de la inversión es: “+rev);

}

}

Producción:

La cadena antes de la inversión es: Apple

La cadena después de la inversión es: elppA

En el ejemplo anterior, la cadena que se proporciona como entrada se almacenaría en búfer mediante StringBuffer. Luego se invertiría utilizando el método reverse(). Después de invertir el búfer, se convertiría en una cadena utilizando el método toString().

Usando StringBuilder:

La clase StringBuilder es altamente preferida en comparación con la clase StringBuffer. Es más rápido y no sincronizado.

Programa Java que invierte una cadena usando StringBuilder:

ejemplo de clase pública de cadena inversa{

public static void main(String[] args) {

Cadena str1 = "Escuela";

//almacena la cadena invertida en la variable rev

String rev = new StringBuilder(str1).reverse().toString();

//imprime la cadena antes de invertir

System.out.println(“\nCadena antes de invertir: “+str1);

//imprime la cadena después del reverso

System.out.println(“Cadena después de invertir: “+rev);

}

}

Producción:

Cuerda antes de dar marcha atrás: Escuela

Cuerda antes de invertir: loohcS

En el código anterior, se usa el objeto de la clase StringBuilder. Los objetos StringBuilder correspondientes son eficientes en memoria, mutables y de ejecución rápida. El objeto llama al método inverso() integrado para proporcionar el resultado deseado.

2. Por iteración inversa

Programa Java que invierte una cadena usando iteración inversa:

clase pública StringReversal {

public static String reverseString(String st){

char ch[]=st.toCharArray();

Cadena rev=””;

for(int i=ch.longitud-1;i>=0;i–)

{

rev+=ch[i];

}

retorno de revoluciones;

}

}

clase pública TestStringReversal {

public static void main(String[] args) {

System.out.println(StringReversal.reverseString(“Soy profesor”));

System.out.println(StringReversal.reverseString(“Yo enseño una asignatura de inglés”));

}

}

Producción:

soy rehcaet

I hcaet hsilgnE tcejbus

En el programa anterior para la cadena inversa en Java , los caracteres de la cadena de entrada se almacenan en la variable rev+ a partir de la última posición usando for loop. La cadena invertida se mostrará en la salida después de almacenar todos los caracteres.

Puede usar While Loop para la iteración inversa, y su código es el siguiente:

clase pública StringReversal {

public static void main(String[] args)

{

String stringInput = “Esta cadena”;

int StrLength=cadenaEntrada.longitud();

while(StrLength >0)

{

System.out.print(stringInput.charAt(StrLength -1));

StrLength–;

}

}

}

Producción:

ignición

3. Usando el método charAt()

Su programa Java es el siguiente:

clase pública Ejemplo de Cadena Inversa {

public static void main(String[] args) {

Cadena str = "Aprender Java";

//almacena la cadena invertida en la variable revv

Cadena rev = "";

//la longitud de la cadena se almacenará en len

int len=str.longitud();

para(int i=len-1;i>=0;i–)

revv = revv + str.charAt(i);

//imprime la cadena antes de invertir

System.out.println(“\nCadena antes de la operación de inversión: “+str);

//imprime la cadena después del reverso

System.out.println(“Cadena después de la inversión: “+ revv);

}

}

Producción:

Cadena antes de la operación de inversión: Aprenda Java

Cadena antes de la operación de inversión: avaJ nraeL

En este programa java para invertir una cadena , los caracteres de la cadena de entrada se almacenan en la variable revv comenzando desde la última posición usando el ciclo for. Después de almacenar todos los caracteres, la cadena invertida se reflejará en la salida.

4. Usando el objeto ArrayList

Su programa Java es el siguiente:

importar java.util.ArrayList;

importar java.util.Collections;

importar java.util.List;

importar java.util.ListIterator;

clase pública Ejemplo de Cadena Inversa {

public static void main(String[] args) {

String str = "Disfruta de la codificación";

// convierte la cadena de entrada en una matriz de caracteres

char ch[]=str.toCharArray();

//agrega una matriz de caracteres al objeto de ArrayList

List<Carácter> obj = new ArrayList<>();

para (carácter c: ch)

obj.add(c);

//pasa el objeto de ArrayList a las colecciones

Colecciones.reverse(obj);

// crea el objeto de listiterator para repetir en la lista

ListIterator objnuevo = obj.listIterator();

//imprime la cadena antes de la inversión

System.out.println(“\nCadena antes de la operación de inversión: “+ str);

//imprime la cadena después de la inversión

System.out.println(“\nCadena después de la operación de inversión: “);

while (objnuevo.hasNext())

System.out.print(objnew.next());

}

}

Producción:

Cadena antes de la operación de inversión: disfrute de la codificación

Cadena después de la operación de inversión: gnidoc yojnE

Este programa Java para invertir una cadena almacena los caracteres de la cadena de entrada en el objeto ArrayList. Se invierte utilizando el método reverse() en las colecciones. El iterador recorre la lista e imprime la cadena invertida después de invertirla.

5. Usando recursividad

Su programa Java es el siguiente:

clase pública Ejemplo de Cadena Inversa {

// define la función de inversión

Revoluciones de cadena (String str) {

// devuelve nulo si la longitud de la cadena es cero

if(str.longitud() == 0)

{

retorno " ";

}

//de lo contrario devuelve el carácter resultante del siguiente método

return str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));

}

public static void main(String[ ] args)

{

// crea un objeto de clase

EjemplodeCadenaReversa r = new EjemplodeCadenaReversa ();

//cadena de entrada

String str = “Maestro en Java”;

//imprime la cadena antes de la inversión

System.out.println(“\nCadena antes de la operación de inversión: “+ str);

//imprime la cadena después de la inversión

System.out.println(“\nCadena después de la operación de inversión: ” + r.revs(str));

}

Producción:

Cadena antes de la operación de inversión: Master en Java

Cadena después de la operación de inversión: avaJ ni retsaM

En este programa Java se genera una función recursiva. Comprueba la longitud de la cuerda y diez reveses. Funciona de manera idéntica a la función inversa en Java .

6. Por conversión de una cadena a bytes

Utiliza el método getBytes() que convierte o divide la cadena de entrada en bytes. En ese momento, la longitud de la matriz de bytes es igual a la longitud de la cadena de entrada. Luego, el programa obtiene los bytes en orden inverso y los guarda en una nueva matriz de bytes.

En el código siguiente, se genera temporalmente una matriz de bytes. Se crean matrices de dos bytes, una para almacenar los bytes convertidos y otra para guardar el resultado en orden inverso.

Su programa Java es el siguiente:

public static void main(String[] arg) {

Valor de entrada de cadena = "Computadora";

byte[] strByteArray = valor de entrada.getBytes();

byte[] resultado = new byte[strByteArray.length];

// Almacena el resultado en orden inverso en el byte de resultado[]

para (int i = 0; i < strByteArray.length; i++)

resultado[i] = strByteArray [strByteArray.length – i – 1];

System.out.println(“La cadena después de la operación inversa es:” +nueva cadena(resultado));

}

Producción:

La cadena después de la operación inversa es: retupmoC

7) Uso de la pila

Este método implica los siguientes pasos para invertir una cadena de Java utilizando la estructura de datos Stack.

  1. Crea una pila sin caracteres.
  2. Transforme una cadena de entrada en una matriz de caracteres mediante el método String.toCharArray(). Posteriormente, agrega cada carácter a la pila.

iii. Recupere caracteres de la pila hasta que esté vacía y luego vuelva a asignar los caracteres a una matriz de caracteres. Entonces, ahora los personajes llegarán en orden inverso.

  1. La matriz de caracteres se convierte en una cadena usando String.copyValueOf(char[]) y finalmente devuelve la nueva cadena.

Su programa Java es el siguiente:

importar java.util.Stack;

clase principal

{

Cadena estática pública inversa (String str)

{

// comprueba si la cadena está vacía o es nula

if (str == null || str.equals(“”)) {

devolver str;

}

// genera una pila de caracteres vacía

Pila<Carácter> pila = new Pila<Carácter>();

// agrega todos los caracteres de la cadena de entrada a la pila

char[] ch = str.toCharArray();

for (int i = 0; i < str.length(); i++) {

pila.push(ch[i]);

}

// comienza desde el índice 0

int m = 0;

// recupera caracteres de la pila hasta que se vacía

mientras (! pila. está vacío ())

{

// asigna cada carácter recuperado a la matriz de caracteres

ch[m++] = pila.pop();

}

// transforma la matriz de caracteres en una cadena y la devuelve

devuelve String.copyValueOf(ch);

}

public static void main(String[] args)

{

String str = “Innovación tecnológica”;

cadena = inversa (cadena);

System.out.println(“El reverso de la cadena de entrada: ” + str);

}

}

Producción

El reverso de la cadena de entrada: ygolonhceT noitavonnI

Comience con su viaje de Java con UpGrad

Si desea aprender Java, debe comprender los conceptos básicos de Java. Para eso, puede obtener la Maestría en Ciencias en Ciencias de la Computación de UpGrad . Cubre temas como Core Java, conceptos OOPS, objetos y clases en Java, métodos en Java, máquina virtual de Java, polimorfismo, herencia, abstracción, encapsulación, etc. Obtendrá orientación de expertos de la industria. Estos expertos realizan sesiones interactivas en vivo que cubren el currículo y temas avanzados.

¿Cuál es la forma más sencilla de invertir una cadena en Java?

La forma más sencilla de invertir una cadena en Java es usar la clase StringBuffer. Admite un método conocido como reverse() que invierte el contenido del objeto StringBuffer existente y devuelve el objeto StringBuffer de salida.

¿Qué es el método recursivo en Java?

Un método que se llama a sí mismo se llama método recursivo en Java. El proceso correspondiente se llama recursividad.

¿Cuáles son las aplicaciones de String en Java?

En Java, las cadenas se pueden usar para detectar plagio en los códigos. Se pueden usar para codificar y decodificar para la transferencia segura de datos del remitente al receptor. Las aplicaciones de cadenas lo ayudan a recuperar información de fuentes de datos anónimas. Además, Strings y sus aplicaciones de algoritmos le brindan filtros mejorados para resolver el problema de superposición aproximada de sufijo-prefijo.