I det här programmet lär du dig att vända en viss mening med en rekursiv slinga i Java.
För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:
- Java-metoder
- Java-rekursion
- Java-sträng
Exempel: Omvänd en mening med rekursion
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); ) )
Utgång :
Den omvända meningen är: krow oG
I ovanstående program har vi en rekursiv funktion reverse()
.
På varje iteration lägger vi till (sammanfogar) resultatet av nästa reverse()
funktion till det första tecknet i meningen med charAt(0)
.
Det rekursiva samtalet måste vara före charAt()
, för så kommer de sista tecknen att börja läggas till vänster. Om du vänder om ordningen kommer du att få den ursprungliga meningen.
I slutändan slutar vi med en tom mening och reverse()
returnerar den omvända meningen.
Obs : Den sentence.substring(1)
metoden returnerar den del av strängen meningen början från index 1 till slutet av strängen. För att lära dig mer, besök Java String substring ().
Iteration | omvänd() | substring () | reversedString |
---|---|---|---|
1 | omvänd ("Go work") | "o Arbete" | resultat + "G" |
2 | omvänd ("o arbete") | "Arbete" | resultat + "o" + "G" |
3 | omvänd ("Arbete") | "Arbete" | resultat + "" + "o" + "G" |
4 | omvänd ("Arbete") | "ork" | resultat + "W" + "" + "o" + "G" |
5 | omvänd ("ork") | "rk" | resultat + "o" + "W" + "" + "o" + "G" |
6 | omvänd ("rk") | "k" | resultat + "r" + "o" + "W" + "" + "o" + "G" |
7 | omvänd ("k") | "" | resultat + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Slutlig | omvänd("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |