Cómo invertir una cadena en Java
-
Invertir una cadena usando el método
reverse()
en Java - Invertir una cadena usando código personalizado en Java
-
Invertir una cadena usando el método
append()
en Java - Invertir una cadena usando recursividad en Java
-
Invertir una cadena usando
Stack
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