当我们要将一个字符串翻转或者替换时,方法很多,可以自己写实现也可以使用String或StringBuffer/StringBuilder中的方法。有一道很常见的面试题是用递归实现字符串反转,代码如下所示:
public static String reverse(String originStr) {
if(originStr == null || originStr.length() <= 1)
return originStr;
System.out.println(originStr);
return reverse(originStr.substring(1)) + originStr.charAt(0); //如果substring()和charAt()的用法不太清楚可以查看jdk帮助文档
}
这里用了递归,一开始我看到的时候,也一时没有明白这个程序运行的过程,于是我画了一张过程图:
于是就可以用这张图来查看个程序运行的过程了;
萌新的理解,不知道是不是准确的,希望各位大佬指正!