代码转 http://zhidao.baidu.com/link?url=cVl1QlTcYenN_dmR8PpWk5U8Dh098g6qI9jCNEyICUZ2k1Mt0qVw-b6O0bRh3P82sg3
package cn.rrl.interview;
/**
* 统计一串英文中出现次数最多的单词以及次数
* @author lenovo
*
*/
public class NewCountWord {
/**
* @param args
*/
public static void main(String[] args) {
String str = "But by the end of the year,look to the skies above London and you'll see the usual suspects raninclouds,planes and pigeons.you might just see something else.";
System.out.println(getMax(getTheChar(str)));
}
/**
* 得到所有字母的次数
* @param str
* @return
*/
public static int[] getTheChar(String str){
int[] chari = new int[26];//定义一个存储26个字母次数的int集合
String [] strs = str.split("[ '.,]");
StringBuffer sb = new StringBuffer();
for(int i=0;i<strs.length;i++){
sb.append(strs[i]);
}
String sbs = sb.toString().toLowerCase();//得到字符串
for(char c='a';c<(char)('a'+25);c++){//迭代产生 abcd... 26个字母
for(int i=0;i<sbs.length();i++){
char chs = sbs.charAt(i);
if(c==chs){
chari[c-'a']++;
}
}
}
return chari;
}
public static String getMax(int [] chari){
int max = chari[0];
for(int i=1;i<chari.length;i++){
if(max<chari[i]){
max=chari[i];
}
}
int index=0;
for(int i=0;i<chari.length;i++){
if(max==chari[i]){
index=i;
break;
}
}
char c =(char) ('a'+index);
return c+"..次数"+max;
}
}