noaman_wgs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 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 }

 

posted on 2016-09-25 09:47  noaman_wgs  阅读(623)  评论(0编辑  收藏  举报