U ovom programu naučit ćete obrnuti zadanu rečenicu pomoću rekurzivne petlje u Javi.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java metode
- Java rekurzija
- Java String
Primjer: Obrni rečenicu pomoću rekurzije
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); ) )
Izlaz :
Obrnuta rečenica je: krow oG
U gore navedenom programu imamo rekurzivnu funkciju reverse()
.
Na svakoj iteraciji dodajemo (spajamo) rezultat sljedeće reverse()
funkcije prvom znaku rečenice pomoću charAt(0)
.
Rekurzivni poziv mora biti ispred charAt()
, jer će se tako posljednji znakovi početi dodavati s lijeve strane. Ako preokrenete redoslijed, završit ćete s izvornom rečenicom.
Na kraju završimo s praznom rečenicom i reverse()
vratimo obrnutu rečenicu.
Napomena : sentence.substring(1)
Metoda vraća dio rečenice u nizu počevši od indeksa 1 do kraja niza. Da biste saznali više, posjetite podniz stringa Java String ().
Iteracija | obrnuti () | podniz () | reversedString |
---|---|---|---|
1 | obrnuto ("Idi na posao") | "o Posao" | rezultat + "G" |
2 | obrnuto ("o Posao") | "Posao" | rezultat + "o" + "G" |
3 | obrnuto ("Posao") | "Raditi" | rezultat + "" + "o" + "G" |
4 | obrnuto ("Posao") | "ork" | rezultat + "W" + "" + "o" + "G" |
5 | obrnuto ("ork") | "rk" | rezultat + "o" + "W" + "" + "o" + "G" |
6 | obrnuto ("rk") | "k" | rezultat + "r" + "o" + "W" + "" + "o" + "G" |
7 | obrnuto ("k") | "" | rezultat + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Konačno | obrnuto ("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |