你好,代码如下:
/**
* 统计
字符串中出现最多的字母及其次数
* @author gogole_09
*
*/
public class CountChar {
private int[] charCount = new int[26]; // 保存字母出现的次数,初步只统计26个字母(都转换成小写字母),
/**
* 统计字母出现次数
*
* @param str
*/
private void countChar(String str) {
str = str.toLowerCase();
// 字母a-z的
索引for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (chari == ch) {
charCount[chari - 'a']++;
}
}
}
}
/**
* 计算出现最多的字母
* @return
*/
private char getMaxChar() {
char max = '?';
int maxcount = 0;
for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
if (charCount[chari - 'a'] >= maxcount) {
maxcount = charCount[chari - 'a'];
max = chari;
}
}
return max;
}
/**
* 获取出现最多的字母出现的具体次数
* @return
*/
private int getMaxCount(){
return getMaxChar()=='?'?charCount[getMaxChar()-'a']:-1;
}
public static void main(String[] args) {
String str="aaabab";
CountChar c=new CountChar();
c.countChar(str);
System.out.println(str+":中出现次数最多的字母是:");
System.out.println(c.getMaxChar());
System.out.println("出现次数是:");
System.out.println(c.getMaxCount());
}
}