📜  java, 如何找到重复次数最多的字符 - Java (1)

📅  最后修改于: 2023-12-03 15:31:34.569000             🧑  作者: Mango

Java中如何找到重复次数最多的字符

在Java中,我们可以使用Map来存储每个字符出现的次数,并通过比较次数大小来找到重复次数最多的字符。

以下是实现的代码:

import java.util.HashMap;
import java.util.Map;

public class FindMostFrequentChar {

    public static void main(String[] args) {
        String str = "Hello World";
        Character mostFrequentChar = findMostFrequentChar(str);
        System.out.println("The most frequent character is: " + mostFrequentChar);
    }

    private static Character findMostFrequentChar(String str) {
        Map<Character, Integer> charMap = new HashMap<>();
        for(int i=0; i<str.length(); i++) {
            char c = str.charAt(i);
            if (charMap.containsKey(c)) {
                charMap.put(c, charMap.get(c) + 1);
            } else {
                charMap.put(c, 1);
            }
        }
        int max = 0;
        Character mostFrequentChar = null;
        for (Map.Entry<Character, Integer> entry : charMap.entrySet()) {
            if (entry.getValue() > max) {
                max = entry.getValue();
                mostFrequentChar = entry.getKey();
            }
        }
        return mostFrequentChar;
    }
}
代码解析
实现思路
  • 声明一个Map<Character, Integer>类型的变量charMap,用于存储每个字符和其出现的次数。
  • 遍历字符串str的每一个字符,如果charMap中已经包含该字符,则将该字符对应的计数器加1;否则,将该字符加入到charMap中,并将其计数器初始化为1。
  • 遍历一遍charMap,找到出现次数最多的字符。
代码说明
  • main()函数为程序的入口函数,调用findMostFrequentChar()函数并输出结果。
  • findMostFrequentChar()函数接收一个字符串参数str,返回其中出现次数最多的字符。
  • findMostFrequentChar()函数中,首先声明一个Map<Character, Integer>类型的变量charMap,用于存储每个字符和其出现的次数。
  • 通过for循环遍历字符串str的每一个字符,如果charMap中已经包含该字符,则将该字符对应的计数器加1;否则,将该字符加入到charMap中,并将其计数器初始化为1。
  • 遍历一遍charMap,找到出现次数最多的字符并返回。
结果

以上代码输出结果为:

The most frequent character is: l

其中,字符串"Hello World"中出现次数最多的字符为小写字母'l',它出现了3次。