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