面试题 字符串中找出现次数最多的字母以及次数

本文介绍了一种使用Java实现的字符频率统计方法。通过将输入字符串转换为字符数组,并利用HashMap存储每个字符及其出现次数,最终找出出现频率最高的字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Test
public void uuidtest() {
String Str = "aaabbcdddddeeeeeee";
char[] StrArr = Str.toCharArray();// 把字符串转为字符数组toCharArray

Map<Character, Integer> map = new HashMap<Character, Integer>();
if (!(StrArr == null || StrArr.length == 0))// 先判断字符数组是否为空
for (int i = 0; i < StrArr.length; i++) {
if (map.get(StrArr[i])!=null)
// 若不为空,说明已经存在相同字符,则Value值在原来的基础上加1
map.put(StrArr[i], map.get(StrArr[i]) + 1);
else
map.put(StrArr[i], 1);
}
// 找map中Value的最大值maxValue,类似于选择排序,寻找最大值的过程:
// 先任取一个Value值定义为最大值,然后与之比较
int maxValue = map.get(StrArr[0]);
char ch = ' ';
for (int j = 0; j < StrArr.length; j++) {
if (maxValue < map.get(StrArr[j])) {
maxValue = map.get(StrArr[j]);
ch = StrArr[j];
}
}
System.out.println("现次数最多的字符:" + ch + " 出现次数:" + maxValue);
}

转载于:https://www.cnblogs.com/inbeijing/p/8556015.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值