En este programa, aprenderá a revertir una oración determinada utilizando un bucle recursivo en Java.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:
- Métodos Java
- Recursión de Java
- Cadena Java
Ejemplo: invertir una oración mediante recursividad
public class Reverse ( public static void main(String() args) ( String sentence = "Go work"; String reversed = reverse(sentence); System.out.println("The reversed sentence is: " + reversed); ) public static String reverse(String sentence) ( if (sentence.isEmpty()) return sentence; return reverse(sentence.substring(1)) + sentence.charAt(0); ) )
Salida :
La oración invertida es: krow oG
En el programa anterior, tenemos una función recursiva reverse()
.
En cada iteración, agregamos (concatenamos) el resultado de la siguiente reverse()
función al primer carácter de la oración usando charAt(0)
.
La llamada recursiva debe estar antes del charAt()
, porque de esa manera los últimos caracteres comenzarán a agregarse al lado izquierdo. Si inviertes el orden, terminarás con la oración original.
Al final, terminamos con una oración vacía y reverse()
devuelve la oración invertida.
Nota : El sentence.substring(1)
método devuelve la parte de la oración de cadena desde el índice 1 hasta el final de la cadena. Para obtener más información, visite Java String substring ().
Iteración | marcha atrás() | subcadena () | reversedString |
---|---|---|---|
1 | reverse ("Ir a trabajar") | "o trabajo" | resultado + "G" |
2 | reverso ("o trabajo") | " Trabajo" | resultado + "o" + "G" |
3 | reverso ("trabajo") | "Trabajo" | resultado + "" + "o" + "G" |
4 | reverso ("trabajo") | "ork" | resultado + "W" + "" + "o" + "G" |
5 | reverso ("ork") | "rk" | resultado + "o" + "W" + "" + "o" + "G" |
6 | reverso ("rk") | "k" | resultado + "r" + "o" + "W" + "" + "o" + "G" |
7 | reverso ("k") | "" | resultado + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Final | marcha atrás("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |