Java 使用递归方式计算字符串中某个字符出现次数

本文主要介绍Java中,使用递归的方法,通过String.charAt和String.length来计算字符串中某个字符的出现次数的方法,以及相关的示例代码。

1、使用String.charAt()和substring()实现

public class Main {
    public static void main(String[] args) {
        System.out.println(numberOf("https://www.cjavapy.com", 'a'));
    }
    static int numberOf(String text, char characterToCount) {
        if (text.isEmpty()) {
            return 0;
        }
        if (text.charAt(0) == characterToCount) {
            return numberOf(text.substring(1), characterToCount) + 1;
        }
        return numberOf(text.substring(1), characterToCount);
    }
}

2、使用String.length()和String.charAt()实现

public class Main {
    public static void main(String[] args) {
        System.out.println(numberOf("https://www.cjavapy.com", 'a'));
    }
    static int numberOf(String text, char ch) {
        if (ch >> 8 >= text.length()) {
            return 0;
        }
        if (text.charAt((ch >> 8)) == (ch & 0xff)) {
            return numberOf(text, (char)(ch + 256)) + 1;
        }
        return numberOf(text, (char)(ch + 256));
    }
}

或者

public class Main {
    public static void main(String[] args) {
        System.out.println(numberOf("https://www.cjavapy.com", 'a'));
    }
    static int numberOf(String text, char characterToCount) {
        return helper(text, characterToCount, 0);
    }
    static int helper(String text, char charToCount, int index) {
        if (text.isEmpty() || index == text.length()) return 0;
        int countCharOnRight = helper(text, charToCount, index+1);
        return (text.charAt(index) == charToCount) ? 1 + countCharOnRight : countCharOnRight;
    } 
}

推荐阅读
cjavapy编程之路首页