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

@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);
}
posted @ 2018-03-13 12:50  半生少年  阅读(574)  评论(0编辑  收藏  举报