English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste programa, você aprenderá a usar loops recursivos em Java para inverter a frase fornecida.
public class Reverse { public static void main(String[] args) { String sentence = "Go work"; String reversed = reverse(sentence); System.out.println("A frase invertida é: ", + reversed); } public static String reverse(String sentence) { if (sentence.isEmpty()) return sentence; return reverse(sentence.substring(1)) + sentence.charAt(0); } }
Quando executamos o programa, a saída é:
A frase invertida é: krow oG
No programa acima, temos uma função recursiva reverse().
Em cada iteração, usamos charAt(0) para adicionar (conectar) o resultado do reverse() ao primeiro caractere da frase.
A chamada recursiva deve ser feita antes de charAt(), pois assim o último caractere começará a ser adicionado ao lado esquerdo. Se você inverter a ordem, você obterá a frase original.
Por fim, encerramos com uma frase vazia, o reverse() retorna a frase invertida.
Iteração | 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" |