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

Java函数如何统计字符串中出现最多的字符

发布时间:2023-06-26 06:21:47

Java函数可以通过几种不同的方法来统计字符串中出现最多的字符。本文将介绍以下两种常见的方法:

1. 使用哈希表统计出现次数

可以使用哈希表(HashMap)来统计字符出现的次数。将字符串中的每个字符作为键,出现次数作为值,遍历字符串,每次出现字符时将对应键值加一。最后遍历哈希表,取出现次数最大的键值即可。

示例代码:

public static char getMaxOccurringChar(String str) {
    // 创建哈希表,用于统计字符出现次数
    HashMap<Character, Integer> charMap = new HashMap<Character, Integer>();
    
    // 遍历字符串,统计字符出现次数
    for(int i=0 ; i<str.length() ; i++) {
        char ch = str.charAt(i);
        if(charMap.containsKey(ch)) {
            charMap.put(ch, charMap.get(ch)+1);
        } else {
            charMap.put(ch, 1);
        }
    }
    
    // 查找出现次数最大的字符
    char maxChar = ' ';
    int maxCount = 0;
    for(Map.Entry<Character, Integer> entry : charMap.entrySet()) {
        if(entry.getValue() > maxCount) {
            maxChar = entry.getKey();
            maxCount = entry.getValue();
        }
    }
    
    return maxChar;
}

2. 使用数组统计出现次数

另一种常见的方法是使用数组来统计字符出现的次数。由于字符集通常较小,可以使用一个长度为字符集大小的整型数组来统计每个字符出现的次数。遍历字符串,每次出现字符时将对应数组元素加一。最后遍历数组,取出现次数最大的元素下标即可。

示例代码:

public static char getMaxOccurringChar(String str) {
    // 声明计数器数组,用于统计字符出现次数
    int[] count = new int[128];
    
    // 遍历字符串,统计字符出现次数
    for(int i=0 ; i<str.length() ; i++) {
        char ch = str.charAt(i);
        count[ch]++;
    }
    
    // 查找出现次数最大的字符
    char maxChar = ' ';
    int maxCount = 0;
    for(int i=0 ; i<count.length ; i++) {
        if(count[i] > maxCount) {
            maxChar = (char) i;
            maxCount = count[i];
        }
    }
    
    return maxChar;
}

总结:

Java函数可以通过哈希表或数组来统计字符串中出现最多的字符。哈希表适用于字符集较大或不确定的情况,数组适用于字符集较小或已知的情况。两种方法的时间复杂度都为O(n),其中n为字符串长度。