首页 > 解决方案 > 计算字符串中空格和句点数的递归方法

问题描述

我在尝试创建一个计算字符串中句点和空格数的递归方法时遇到了一些麻烦。我可以很容易地使用迭代来做到这一点,但我对递归的概念还是很陌生。到目前为止,这是我的代码,有人能告诉我哪里出错了吗?

public static int periodsAndSpaces(String s){ //option 3
    if(s.length()<0){ //base case
        return 0;
    }

    else if(s.charAt(0) == ' ' || s.charAt(0) == '.'){ //general case
        return periodsAndSpaces(s.substring(1)) + 1;
    }
    return 0;
}

标签: javarecursion

解决方案


package com.test.demo;

public class Counter {

    public static void main(String[] args) {
        System.out.println(new Counter().countPeriodsAndSpaces(" test. . .a"));
    }

    int countPeriodsAndSpaces(String rs) {
        if (rs == null || rs.isEmpty()) 
            return 0;
        
        char c = rs.charAt(0);
        if (c == ' ' || c == '.') 
            return 1 + countPeriodsAndSpaces(rs.substring(1)); 
        else 
            return countPeriodsAndSpaces(rs.substring(1)); 
    }
    
}

// 输出 6


推荐阅读