问题:
给定一个字符串“today is a special day”,长度任意,要求找出其出现次数最多的字符及计算次数。
解答思路:
以下是一种可能的实现方案:
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String str = "today is a special day";
Map<Character, Integer> charCount = new HashMap<>();
for (char c : str.toCharArray()) {
if (charCount.containsKey(c)) {
charCount.put(c, charCount.get(c) + 1);
} else {
charCount.put(c, 1);
}
}
int maxCount = 0;
char maxChar = '\0';
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
maxChar = entry.getKey();
}
}
System.out.println("出现次数最多的字符是:" + maxChar + ",出现次数为:" + maxCount);
}
}
该程序首先创建一个'HashMap'来存储每个字符及其出现的次数。然后,它遍历输入字符串中的每个字符,并在'HashMap'中更新其出现次数。如果字符已经在'HashMap'中,则将其出现次数加 1;否则,将其添加到'HashMap'中,并将其出现次数设置为 1。
接下来,程序遍历'HashMap'中的每个条目,并找到出现次数最多的字符及其出现次数。它将最大出现次数初始化为 0,并将最大字符初始化为''\0''。然后,它遍历'HashMap'中的每个条目,并将其出现次数与最大出现次数进行比较。如果出现次数大于最大出现次数,则将最大出现次数更新为该出现次数,并将最大字符更新为该字符。
最后,程序打印出出现次数最多的字符及其出现次数。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)