zoukankan      html  css  js  c++  java
  • 计算字符串每个字符出现的次数

    package test001;
    
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class EveryStrCount {
    	public static void main(String[] args) 
    	 {
    	  String str = "程序员好吗>序员好吗>程序序家序序序序aabb;;;";
    	  Map<Character,Integer> map = new HashMap<Character,Integer>();
    	  char[] ch = str.toCharArray();
    	  /*将字符和出现的个数存入到Map*/
    	  for(char c:ch){
    	   if(map.get(c)==null){
    	    map.put(c, 1);
    	   }else{
    	    Integer in = map.get(c);
    	    in++;
    	    map.put(c, in);
    	   }
    	  }
    	  
    	  //取出key集合
    	  Set<Character> set = map.keySet();
    	  //根据key,取出value就可以算出字符出现的个数
    	  for(Character c:set)
    	  {
    	   System.out.println("["+c+"]"+":出现的次数为:"+map.get(c));
    	  }
    	  System.out.println();
    	  
    	  //取出value集合
    	  Collection<Integer> col = map.values();
    	  //取出最大值(也就是出现最多的次数)
    	  int charMaxIndex = Collections.max(col);
    	  //取出最小值(也就是出现最少的次数)
    	  int charMinIndex = Collections.min(col);
    	  //Map.Entry是一个接口,Map.entrySet方法返回映射的 collection 视图,获得映射项引用的
    	  //唯一方法是通过此 collection 视图的迭代器来实现。
    	  for(Map.Entry<Character, Integer> entry : map.entrySet())
    	  {
    	   if(entry.getValue().equals(charMaxIndex))
    	   {
    	    System.out.println("出现次数最多的字符是:"+entry.getKey()+":"+"它出现了:"+charMaxIndex+"次");
    	   }
    	   else if(entry.getValue().equals(charMinIndex))
    	   {
    	    System.out.println("出现次数最少的字符是:"+entry.getKey()+":"+"它出现了:"+charMinIndex+"次");
    	   }
    	  }
    	   }
    }
    

      运行结果:

    [员]:出现的次数为:2
    [b]:出现的次数为:2
    [a]:出现的次数为:2
    [;]:出现的次数为:3
    [程]:出现的次数为:2
    [吗]:出现的次数为:2
    [好]:出现的次数为:2
    [>]:出现的次数为:2
    [家]:出现的次数为:1
    [序]:出现的次数为:8
    
    出现次数最少的字符是:家:它出现了:1次
    出现次数最多的字符是:序:它出现了:8次
    

      

  • 相关阅读:
    dotnet core 获取 MacAddress 地址方法
    dotnet core 获取 MacAddress 地址方法
    dotnet core 发布只带必要的依赖文件
    dotnet core 发布只带必要的依赖文件
    Developing Universal Windows Apps 开发UWA应用 问答
    Developing Universal Windows Apps 开发UWA应用 问答
    cmd 如何跨驱动器移动文件夹
    cmd 如何跨驱动器移动文件夹
    C++ 驱动开发 error LNK2019
    C++ 驱动开发 error LNK2019
  • 原文地址:https://www.cnblogs.com/ckxlovejava/p/5939430.html
Copyright © 2011-2022 走看看