如何统计字符串中每个字符出现的次数,这类题遇到过很多次,下面就来谢谢解决思路:
可采用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 }
此种思路可以解决较多类似的问题,可以类比一下。