import java.util.*;
public class Test {
//找出重复次数最多的字符,并打印出数量和字符
public static void main(String[] args) {
String a = "aaabbdcfeeswdfttrrccaa";
List ls = new LinkedList();
Test test = new Test();
for(int i=0; i<a.length(); i++){
if(!test.isHave(ls,(a.charAt(i)+""))){
ls.add(a.charAt(i)+"");
}
}
//保存相应的位置的字母的个数
int[] ret = new int[ls.size()];
int max =0; //最大数
for(int i=0; i<ls.size(); i++){
ret[i] = test.getNum(ls.get(i).toString(),a);
if(ret[i]>max){
max = ret[i];
}
}
//检查个数最大的,返回位置列表
List ls2 = new LinkedList();
for(int i=0; i<ret.length;i++){
if(ret[i]==max){
ls2.add(i+"");
}
}
//遍历ls2,打印出相应字母和个数
System.out.println("\n打印出个数最多的字母及个数:");
for(int i=0; i<ls2.size(); i++){
int m = Integer.parseInt(ls2.get(i).toString());
System.out.println("字母:"+ls.get(i).toString()+" 个数:"+ret[m]);
}
System.out.println("\n打印出所有字母及个数:");
for(int i=0; i<ret.length;i++){
System.out.println("字母:"+ls.get(i).toString()+" 个数:"+ret[i]);
}
}
//查询该列表 ls 是否有该字符
private boolean isHave(List ls, String k){
boolean flag = false;
for(int i=0; i<ls.size(); i++){
if(ls.get(i).toString().equals(k)){
flag = true;
break;
}
}
return flag;
}
//查询 a 中有几个 k
private int getNum(String k, String a){
int j=0;
for(int i=0; i<a.length(); i++){
if((a.charAt(i)+"").equals(k)){
j++;
}
}
return j;
}
}
运行结果:
打印出个数最多的字母及个数:
字母:a 个数:5
打印出所有字母及个数:
字母:a 个数:5
字母:b 个数:2
字母:d 个数:2
字母:c 个数:3
字母:f 个数:2
字母:e 个数:2
字母:s 个数:1
字母:w 个数:1
字母:t 个数:2
字母:r 个数:2
你自己再改改!
温馨提示:答案为网友推荐,仅供参考