Ir al contenido

Invertir una cadena con recursividad en Java

En la página ya teníamos publicados dos artículos sobre como invertir una cadena en Java. Por un lado podíais ver como invertirla utilizando un bucle y por otro apoyándonos en el método reverse de un StringBuilder. Pero en el día de hoy vamos a ver como podemos invertir una cadena con recursividad en Java.

Lo primero que tenemos que saber para poder invertir una cadena con recursividad en Java es el concepto de recursividad. Podríamos decir que la recursividad consiste en ejecutar un mismo código un número de veces limitado para luego acabar dando como resultado la agregación de todas estas ejecuciones. Si bien está agregación se ejecutará de forma inversa, es decir lo primero será lo último ejecutado.

Para poder invertir una cadena con recursividad en Java nos vamos a apoyar en esa ejecución inversa. Lo primero será crear la función reverse.

public static String reverse(String palabra) {
// código de la función
}

Como vemos lo que recibe la función reverse es una cadena. Dentro de las funciones preparadas para la recursividad siempre hay una comprobación por la cual nos saldremos de la ejecución y otra con la cual llamaremos a la función.

En este caso el fin de la ejecución será cuando la palabra solo tenga un carácter.

if (palabra.length() <= 1) {
return palabra;
}

En el caso contrario lo que haremos será llamar a la función nuevamente, pero en este caso la llamaremos con el contenido de la palabra a partir del segundo carácter.

reverse(palabra.substring(1))

Pero todavía tenemos que tener en cuenta qué hacer con el carácter que nos queda en la pila. Es decir, el carácter que está en la posición 0. Este carácter habrá que añadirlo al final de la cadena para conseguir que esté invertida.

Por lo que nuestro código para invertir una cadena con recursividad en Java será el siguiente:

public static String reverse(String palabra) {
if (palabra.length() <= 1) {
return palabra;
}
return reverse(palabra.substring(1)) + palabra.charAt(0);
}
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Invertir una cadena con recursividad en Java

Uso de las técnicas de recursividad para poder invertir una cadena con recursividad en java

Descargar código