统计字符出现次数

如何统计字符串中每个字符出现的次数,这类题遇到过很多次,下面就来谢谢解决思路:

可采用HashMap来解决,HashMap存储的是键值对,即key-value;每个key对应一个value值,利用这个特性,可以将字符看为key,value看做字符出现的次数,这样就可以很好地解决这个问题,下面给出详细代码:

 1 import java.util.HashMap;
 2 import java.util.Iterator;
 3 import java.util.Map;
 4 import java.util.Scanner;
 5 
 6 public class Main {
 7 
 8     public static void main(String[] args) {
 9         
10         Scanner in = new Scanner(System.in);
11         
12        while(in.hasNext()){        //多组输入
13            
14            String str = in.next();        //输入字符串
15            
16           Map x = Main.getMap(str);        //调用函数
17          
18           Iterator<Character> iter = x.keySet().iterator();        //定义Iterator对象
19 
20           while (iter.hasNext()) {        //对HashMap对象进行迭代
21               
22               Character c = iter.next();
23 
24              System.out.println(c+"出现的次数是:"+x.get(c));
25 
26           }
27           
28        }
29     }
30     public static Map<Character,Integer> getMap(String str){    //函数声明 
31         
32         Map<Character,Integer> map = new HashMap<Character,Integer>();    //构造map对象
33         
34         for(int i=0;i<str.length();i++){    //对字符串进行遍历
35             
36             Character ch = str.charAt(i);    //获得字符串中的字符
37             
38             Integer count = map.get(ch);    //定义字符出现次数这一变量count
39             
40             map.put(ch, count == null? 1:count+1);        //调用HashMap中的put方法,如果字符从未出现过,则count=1,如果字符出现过,则count=count+1
41         
42         }
43         
44         return map;        //返回map
45     }
46     
47 }

此种思路可以解决较多类似的问题,可以类比一下。

原文地址:https://www.cnblogs.com/cppeterpan/p/6985014.html