欢迎访问宙启技术站
智能推送

Java函数如何查找一个字符串中出现次数最多的字母?

发布时间:2023-06-10 01:12:26

在Java中,要查找一个字符串中出现次数最多的字母,需要一些基本的算法和数据结构知识。

首先,将要查找的字符串转换为字符数组。然后,用一个长度为26的数组记录每个字母出现的次数。数组的下标表示字母在字母表中的位置,比如a在数组中的下标是0,b在数组中的下标是1,以此类推。遍历字符数组,对于每个字母,将其对应的计数器加1。最后,遍历计数器数组,找到出现次数最多的字母。

具体实现如下:

public static char maxOccurringChar(String str) {
    // 将字符串转换为字符数组
    char[] arr = str.toCharArray();
    // 用一个长度为26的数组记录每个字母出现的次数
    int[] count = new int[26];
    // 遍历字符数组,对于每个字母,将其对应的计数器加1
    for (char c : arr) {
        count[c - 'a']++;
    }
    // 遍历计数器数组,找到出现次数最多的字母
    int maxIdx = 0;
    for (int i = 1; i < count.length; i++) {
        if (count[i] > count[maxIdx]) {
            maxIdx = i;
        }
    }
    // 将下标转换为字母并返回
    return (char)(maxIdx + 'a');
}

该函数的时间复杂度为O(n),其中n为字符串的长度。