1 package com.exe.test1;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 /**
7 * 输入一串字符串,求出重复次数最多的字母
8 * @author WGS
9 */
10 public class Exe1 {
11
12 public static String getRepeatCharacter(String str){
13 StringBuilder sb=new StringBuilder(128);
14 Map<Character,Integer> map=new HashMap<>();//Character:将要添加额字符,Integer:字符对应的次数
15
16 //aavzbbcdeaabb
17 for(int i=0;i<str.length();i++){
18 char c=str.charAt(i);
19 //map逐个添加str字符,如果含有将要添加的字符,就将对应的次数+1
20 if(map.containsKey(c)){
21 map.put(c, map.get(c)+1);
22 }
23 //如果不含有将要添加的字符,即为第一次添加,将其次数设置为1
24 else{
25 map.put(c, 1);
26 }
27 }
28 //获取次数最多的
29 int max=Integer.MIN_VALUE;
30 //先遍历Map中的value值,即字符对应的次数,找到最大的那个次数
31 for(Map.Entry<Character,Integer> entrySet:map.entrySet()){
32 Integer value=entrySet.getValue();
33 //获取value值最大那个
34 if(max < value){
35 max = value;
36 }
37 }
38 //再次遍历Map,如果字符对应的次数与max相等,即表明此字符出现次数最多
39 for(Map.Entry<Character,Integer> entrySet:map.entrySet()){
40 Character key=entrySet.getKey();
41 Integer value=entrySet.getValue();
42 if(value==max){
43 sb.append(key).append(":").append(value).append("\n");
44 }
45 }
46 return sb.toString();
47 }
48 public static void main(String[] args) {
49 System.out.println("出现次数最多的字符及次数是::"+getRepeatCharacter("eaafffvzebbcsdafedeaabffffebefff"));
50 }
51
52 }