- package com.my.oa;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.TreeMap;
- import java.util.TreeSet;
- import java.util.Map.Entry;
- /**
- * @author: Xushengxiang
- * @version:
- * @function: 输入一个字符串,根据并字符串求出出现最频繁的字符,并打印出现次数(并能处理多个最多结果的情况)!
- */
- public class StringAppearTimes {
- public static void main(String[] args) {
- String str ="中国人民银行行长:XuWeiJun";
- processFacade(str);
- }
- /**
- * 门面
- */
- private static void processFacade(String str) {
- Map<Character, Integer> map = produceTreeMap(str);
- TreeSet<Integer> set = produceTreeSet(map);
- printResult(map, set);
- }
- /**
- * 生成TreeMap
- */
- private static Map<Character, Integer> produceTreeMap(String str) {
- char[] c = str.toCharArray();
- int length = c.length;
- Map<Character,Integer> map = new TreeMap<Character,Integer>();
- for (int i = 0; i < length; i++) {
- if(map.containsKey(c[i])){
- Integer value = map.get(c[i]) + 1;
- map.put(c[i], value);
- }
- else{
- map.put(c[i], 1);
- }
- }
- return map;
- }
- /**
- * 根据出现次数生成TreeSet
- */
- private static TreeSet<Integer> produceTreeSet(Map<Character, Integer> map) {
- TreeSet<Integer> set = new TreeSet<Integer>();
- for(Iterator<Entry<Character, Integer>> ite = solveMapIterator(map);ite.hasNext();){
- Entry<Character, Integer> entry = ite.next();
- set.add(entry.getValue());
- }
- return set;
- }
- /**
- * 打印结果
- */
- private static void printResult(Map<Character, Integer> map,
- TreeSet<Integer> set) {
- for(Iterator<Entry<Character, Integer>> ite = solveMapIterator(map);ite.hasNext();){
- Entry<Character, Integer> entry = ite.next();
- if(entry.getValue() == set.last()){
- System.out.println("最频繁的字符:" + entry.getKey() + " ,出现次数: " +entry.getValue());
- }
- }
- }
- /**
- * 对Map的迭代处理
- */
- private static Iterator<Entry<Character, Integer>> solveMapIterator(
- Map<Character, Integer> map) {
- Iterator<Entry<Character, Integer>> iterator = map.entrySet().iterator();
- return iterator;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/250420149371.html
来源: http://www.codesnippet.cn/detail/250420149371.html