English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderás a usar la recursión en Java para revertir la oración dada.
public class Reverse { public static void main(String[] args) { String sentence = "Go work"; String reversed = reverse(sentence); System.out.println("La oración al revés es: ", + reversed); } public static String reverse(String sentence) { if (sentence.isEmpty()) return sentence; return reverse(sentence.substring(1)) + sentence.charAt(0); } }
Al ejecutar el programa, la salida es:
La oración al revés es: krow oG
En el programa anterior, tenemos una función recursiva reverse().
En cada iteración, utilizamos charAt(0) para agregar (conectar) el resultado de reverse() siguiente al primer carácter de la oración.
La llamada recursiva debe estar antes de charAt(), porque de esta manera el último carácter comenzará a agregarse a la izquierda. Si inviertes el orden, obtendrás la oración original.
Finalmente, nos terminamos con una oración vacía, reverse() devuelve la oración inversa.
Iteración | reverse() | substring() | reversedString |
---|---|---|---|
1 | reverse("Go work") | "o Work" | result + "G" |
2 | reverse("o Work") | " Work" | result + "o" + "G" |
3 | reverse(" Work") | "Work" | result + " " + "o" + "G" |
4 | reverse("Work") | "ork" | result + "W" + " " + "o" + "G" |
5 | reverse("ork") | "rk" | result + "o" + "W" + " " + "o" + "G" |
6 | reverse("rk") | "k" | result + "r" + "o" + "W" + " " + "o" + "G" |
7 | reverse("k") | "" | result + "k" + "r" + "o" + "W" + " " + "o" + "G" |
Final | reverse("") | - | "" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG" |