English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce programme, vous apprendrez à utiliser la récursion circulaire en Java pour inverser la phrase donnée.
public class Reverse { public static void main(String[] args) { String sentence = "Go work"; String reversed = reverse(sentence); System.out.println("La phrase inversée est : ", + reversed); } public static String reverse(String sentence) { if (sentence.isEmpty()) return sentence; return reverse(sentence.substring(1)) + sentence.charAt(0); } }
Lors de l'exécution de ce programme, la sortie est :
La phrase inversée est : krow oG
Dans le programme ci-dessus, nous avons une fonction récursive reverse().
Dans chaque itération, nous utilisons charAt(0) pour ajouter (joindre) le résultat de reverse() suivant au premier caractère de la phrase.
Recursive calls must be made before charAt(), because in this way the last character will start to be added to the left. If you reverse the order, you will get the original sentence.
Finally, we end with an empty sentence, and reverse() returns the reversed sentence.
Iteration | 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" |