//求字符串中出现最多次数的字母,如果有多个,则都求出。BY MYSELF 已测试 import java.util.*; public class FindValueOfMaxTimes{ public static void main(String args[]){ String input = "asdddgghhh"; doString(input); } public static void doString(String input){ char[] chars = input.toCharArray(); TreeSet set = new TreeSet(); for(int i=0; i<chars.length; i++){ set.add(String.valueOf(chars[i]));//String.valueOf } Arrays.sort(chars); input = new String(chars); int max = 0 ; String maxString=""; ArrayList maxlist = new ArrayList(); Iterator it = set.iterator(); while(it.hasNext()){ String os = (String)it.next();//String。返回Object,需要强制转换 int i = input.indexOf(os); int j = input.lastIndexOf(os); int times = j-i+1; if(times>max){ max=times; maxString=os; maxlist.add(os); }else if(times==max){ maxlist.add(os); } } int index=0; for(int i=0; i<maxlist.size(); i++){ if(maxlist.get(i).equals(maxString)){//list可以get(i),set不行?必须用equals比较,不能用== index=i; break; } } for(int i=index; i<maxlist.size(); i++){ System.out.println(maxlist.get(i)+" "); } System.out.println(max); } }