//求出现最多的字符及次数
import java.util.*;
public class TestString{
public static void main(String argument []) throws Exception{
String input = "aavlkdjfoejijsojdfkjeijflskdjfijefjksdjfjsljfikdjkfdksjdijfeeeeeeeeeeee";
new TestNum().doString(input);
}
public void doString(String input){
char [] chars = input.toCharArray(); //把字符串转换成 char 数组
ArrayList lists = new ArrayList();
TreeSet tset = new TreeSet();
StringBuilder sb = new StringBuilder();
int max = 0;
ArrayList maxList = new ArrayList();
for(int i = 0;i<chars.length;i++){
lists.add(chars[i] + ""); //加入到ArrayList中
tset.add(chars[i] + ""); //加入到TreeSet中
}
Collections.sort(lists); //对ArrayList中的元素进行排序
for(int i =0;i<lists.size();i++){
sb.append(lists.get(i)); //把lists组成新字符串
}
Iterator its = tset.iterator();
while(its.hasNext()){ //秩代TreeSet
String indexStr = (String)its.next();
int begin = sb.indexOf(indexStr); //第一个出现的位置
int end = sb.lastIndexOf(indexStr); //最后一个出现的位置
int value = end - begin + 1; //当前字符总出现次数
if(value > max){
maxList.clear(); //出现更多的字符时先把存放最多字符的集合清空
maxList.add(indexStr); //把出现更多的加入到存放最多字符的集合中
max = value; //记录出现最多的字符出现次数
}else if(value == max){
maxList.add(indexStr); //出现相同最多的,一起加入到集合中
}
}
System.out.println("出现最多的字符总出现次数为:" + max + "/n出现最多字符为:");
for(int i = 0;i<maxList.size();i++){
System.out.println(maxList.get(i));
}
}
}