java编码实现一个字符串中出现最多字母的次数(只要求找出出现最多字母的次数,不需要找出具体字母)
如题,看有哪些实现方式更简便且效率高
[解决办法]
先抛个:
String str = "jdsalfjaslnzdfuawoejlljafd";
int max = 0;
Map<Character, Integer> map = new HashMap<Character, Integer>(str.length());
for(char chr : str.toCharArray()) {
Integer i = map.get(chr);
int value = (i == null) ? 0 : i; // 获取,没有则0,有则叠加
map.put(chr, ++value);
max = value > max ? value : max; // 更新max
}
System.out.println(max);
String str = "afdbsodfusdfalgaufaowejhnlgjaouowejhgajgabcdefghijklmnopqrstuvwxyz,./?'????????????????????????????????????????";
int[] sum = new int[52];
int max = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 65 && c <= 90)//A~Z
sum[c - 65]++;
else if (c >= 97 && c <= 122)//a~z
sum[c - 71]++;
else
continue;
}
for (int i = 0; i < sum.length; i++)
if (sum[i] > max)
max = sum[i];
System.out.println(max);