用递归实现字符串反转

题目描述:对一个字符串,如何用递归方式实现字符串的反转。如字符串:“123456”,用递归实现反转后,效果是“654321”。

思路:将字符串转换成字符数组,每次截取字符串的首字符放到最后,并再次对剩余字符串递归截取首字符,直到满足if条件(

originStr == null || originStr.length() <= 1)结束截取字符串操作。

 

递归实现字符串反转 完成代码如下:

public class Question39 {
        public static void main(String[] args) {
            System.out.println(reverse("123456"));
        }
        
        public static String reverse(String originStr) {
            if(originStr == null || originStr.length() <= 1) {
                return originStr;
            }
            
            
            return reverse(originStr.substring(1)) + originStr.charAt(0);
        }
}

亲测结果:

Java面试题--如何用递归实现字符串反转

 

下面说一下递归调用的代码解析,也就是下面这行代码:

public static String reverse(String originStr) {
            if(originStr == null || originStr.length() <= 1) {
                return originStr;
            }    
            return reverse(originStr.substring(1)) + originStr.charAt(0);
        }
return reverse(originStr.substring(1)) + originStr.charAt(0);这行语句中,originStr.charAt(0)是将originStr这个字符串的
第一位拿出来;
而reverse(originStr.substring(1))中的originStr.substring(1)表示把originStr这个字符串的索引为1及之后的字符(也就是originStr字符串
最后,控制台输出打印“654321”。

 

相关文章:

  • 2021-08-31
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2021-05-29
  • 2021-12-27
  • 2021-06-15
猜你喜欢
  • 2021-12-16
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-03-30
相关资源
相似解决方案