求字符串出现次数最多的字符及次数

Posted noaman_wgs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求字符串出现次数最多的字符及次数相关的知识,希望对你有一定的参考价值。

 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 }

 

以上是关于求字符串出现次数最多的字符及次数的主要内容,如果未能解决你的问题,请参考以下文章

求一个字符串中连续出现次数最多的子串

如何获取数组中出现次数最多的字符串?

求一个字符串中出现最多的字符和次数

JS中判断字符串中出现次数最多的字符及出现的次数

C语言 计算字符串中子串出现的次数 求更改

Java中如何提取字符串中出现最多的字符