【发布时间】:2020-09-25 14:30:16
【问题描述】:
所以我目前正在练习 java,我是一个初学者,我尝试解释我编写的所有示例,以便我能够理解事情是如何以及为什么会这样。我理解递归的概念,但是当我试图解释这段代码时遇到了这个问题:
import java.util.Scanner;
public class JavaExample {
public static void main(String[] args) {
String str;
System.out.println("Enter your username: ");
Scanner scanner = new Scanner(System.in);
str = scanner.nextLine();
scanner.close();
String reversed = reverseString(str);
System.out.println("The reversed string is: " + reversed);
}
public static String reverseString(String str)
{
if (str.isEmpty())
return str;
//Calling Function Recursively
return reverseString(str.substring(1)) + str.charAt(0);
}
}
以我目前对递归的了解,我试图这样解释它。 例如,让我们有一个字符串“Petar”:
reverseString(etar)+P
reverseString((tar)+etar)+P
reverseString((ar)+tar+etar)+P
reverseString((r)+ar+tar+etar)+P
-----------------------------------
r+ar+tar+etar+P
我注意到正确的答案是每个部分的第一个字符,所以我必须接近。
感谢您抽出宝贵时间,如果我没有清楚地表达自己,我很抱歉,我来自欧洲(英语不好)。
【问题讨论】:
标签: java string recursion return substring