English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo Java

Java Arreglo

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Java Map de colecciones

Java Set de colecciones

Java Entrada/Salida (I/)

Reader de Java/Writer

Otras temáticas de Java

Programa Java que utiliza recursión para revertir una oración

Java Ejemplos Completos

En este programa, aprenderás a usar la recursión en Java para revertir la oración dada.

Ejemplo: usar recursión para revertir una oración

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.

Pasos de ejecución
Iteraciónreverse()substring()reversedString
1reverse("Go work")"o Work"result + "G"
2reverse("o Work")" Work"result + "o" + "G"
3reverse(" Work")"Work"result + " " + "o" + "G"
4reverse("Work")"ork"result + "W" + " " + "o" + "G"
5reverse("ork")"rk"result + "o" + "W" + " " + "o" + "G"
6reverse("rk")"k"result + "r" + "o" + "W" + " " + "o" + "G"
7reverse("k")""result + "k" + "r" + "o" + "W" + " " + "o" + "G"
Finalreverse("")-"" + "k" + "r" + "o" + "W" + " " + "o" + "G" = "kroW oG"

Java Ejemplos Completos