Programma Java per invertire una frase utilizzando la ricorsione

In questo programma imparerai a invertire una determinata frase utilizzando un ciclo ricorsivo in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Metodi Java
  • Ricorsione Java
  • Java String

Esempio: invertire una frase usando la ricorsione

 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); ) )

Uscita :

 La frase al contrario è: krow oG

Nel programma sopra, abbiamo una funzione ricorsiva reverse().

Ad ogni iterazione, aggiungiamo (concateniamo) il risultato della reverse()funzione successiva al primo carattere della frase usando charAt(0).

La chiamata ricorsiva deve essere prima di charAt(), perché in questo modo gli ultimi caratteri inizieranno ad aggiungersi sul lato sinistro. Se inverti l'ordine, ti ritroverai con la frase originale.

Alla fine, finiamo con una frase vuota e reverse()restituiamo la frase invertita.

Nota : il sentence.substring(1)metodo restituisce la parte della frase stringa a partire dall'indice 1 fino alla fine della stringa. Per saperne di più, visita la sottostringa Java String ().

Fasi di esecuzione
Iterazione inversione() sottostringa () reversedString
1 reverse ("Vai a lavorare") "o Lavoro" risultato + "G"
2 reverse ("o Work") " Lavoro" risultato + "o" + "G"
3 reverse ("Work") "Lavoro" risultato + "" + "o" + "G"
4 reverse ("Work") "ork" risultato + "W" + "" + "o" + "G"
5 inverso ("ork") "rk" risultato + "o" + "W" + "" + "o" + "G"
6 reverse ("rk") "K" risultato + "r" + "o" + "W" + "" + "o" + "G"
7 inverso ("k") "" risultato + "k" + "r" + "o" + "W" + "" + "o" + "G"
Finale inversione("") - "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG"

Articoli interessanti...