Cómo invertir una cadena en Java

Mohammad Irfan 12 octubre 2023
  1. Invertir una cadena usando el método reverse() en Java
  2. Invertir una cadena usando código personalizado en Java
  3. Invertir una cadena usando el método append() en Java
  4. Invertir una cadena usando recursividad en Java
  5. Invertir una cadena usando Stack en Java
Cómo invertir una cadena en Java

Este tutorial introduce cómo invertir una cadena en Java y enumera algunos códigos de ejemplo para entenderla.

Hay varias maneras de invertir una cadena, como los métodos reverse(), sorted(), y parallelSort(), etc. Veamos los ejemplos.

Invertir una cadena usando el método reverse() en Java

En este ejemplo, usamos el método reverse() de la clase StringBuilder para obtener la cadena en orden inverso, y usamos el método toString() para obtener el objeto cadena del objeto StringBuilder. Veamos el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder strb = new StringBuilder(str);
    str = strb.reverse().toString();
    System.out.println(str);
  }
}

Resultado:

DelfStack
kcatSfleD

Invertir una cadena usando código personalizado en Java

Si no quieres usar métodos incorporados, entonces usa un código personalizado que intercambiará los caracteres de la cadena usando un bucle y los recogerá en un array de caracteres que se convertirá más adelante en una cadena. Véase el ejemplo que se presenta a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    char[] ch = str.toCharArray();
    int begin = 0;
    int end = ch.length - 1;
    char temp;
    while (end > begin) {
      temp = ch[begin];
      ch[begin] = ch[end];
      ch[end] = temp;
      end--;
      begin++;
    }
    str = new String(ch);
    System.out.println(str);
  }
}

Resultado:

DelfStack
kcatSfleD

Invertir una cadena usando el método append() en Java

Este es otro enfoque para revertir una cadena en Java. Aquí, usamos los métodos charAt() y append() dentro del bucle for para recuperar y almacenar los caracteres en el objeto StringBuilder. Mira el ejemplo de abajo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder dest = new StringBuilder();
    for (int i = (str.length() - 1); i >= 0; i--) {
      dest.append(str.charAt(i));
    }
    System.out.println(dest);
  }
}

Resultado:

DelfStac
kcatSfleD

Invertir una cadena usando recursividad en Java

La recursión es una técnica en la que una función se llama a sí misma una y otra vez hasta la condición base. Podemos usar la recursión para invertir la cadena, como en el siguiente ejemplo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    String reverseStr = reverseIt(str, str.length() - 1);
    System.out.println(reverseStr);
  }
  static String reverseIt(String str, int index) {
    if (index == 0) {
      return str.charAt(0) + "";
    }
    char letter = str.charAt(index);
    return letter + reverseIt(str, index - 1);
  }
}

Resultado:

DelfStack
kcatSfleD

Invertir una cadena usando Stack en Java

Podemos usar la clase Stack para invertir la cadena. Usamos el método push() de Stack para recoger los caracteres en la pila y luego usamos el método pop() para recuperar los caracteres almacenados en orden inverso. Vea el ejemplo a continuación.

import java.util.Stack;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < str.length(); i++) {
      stack.push(str.charAt(i));
    }
    StringBuilder strb = new StringBuilder();
    while (!stack.empty()) {
      strb.append(stack.pop());
    }
    System.out.println(strb);
  }
}

Resultado:

DelfStack
kcatSfleD

Artículo relacionado - Java String