Neste programa, você aprenderá a reverter uma determinada frase usando um loop recursivo em Java.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Métodos Java
- Java Recursion
- Java String
Exemplo: reverter uma frase usando recursão
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); ) )
Produto :
A frase invertida é: krow oG
No programa acima, temos uma função recursiva reverse()
.
Em cada iteração, adicionamos (concatenamos) o resultado da próxima reverse()
função ao primeiro caractere da frase usando charAt(0)
.
A chamada recursiva deve ser antes de charAt()
, porque dessa forma os últimos caracteres começarão a ser adicionados ao lado esquerdo. Se você inverter a ordem, terminará com a frase original.
No final, terminamos com uma frase vazia e reverse()
retornamos a frase invertida.
Observação : o sentence.substring(1)
método retorna a parte da frase da string começando do índice 1 até o final da string. Para saber mais, visite Java String substring ().
Iteração | marcha ré() | substring () | reversedString |
---|---|---|---|
1 | reverso ("Vá trabalhar") | "o Trabalho" | resultado + "G" |
2 | reverso ("o Trabalho") | " Trabalhos" | resultado + "o" + "G" |
3 | reverso ("Trabalho") | "Trabalhos" | resultado + "" + "o" + "G" |
4 | reverso ("Trabalho") | "ork" | resultado + "W" + "" + "o" + "G" |
5 | reverso ("ork") | "rk" | resultado + "o" + "W" + "" + "o" + "G" |
6 | reverso ("rk") | "k" | resultado + "r" + "o" + "W" + "" + "o" + "G" |
7 | reverso ("k") | "" | resultado + "k" + "r" + "o" + "W" + "" + "o" + "G" |
Final | marcha ré("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |