首页 > 技术文章 > Java案例——用集合实现统计任意字符串中字符出现的次数

CYan521 2022-03-30 20:50 原文

需求:键盘录入一个字符串,统计其中各个字符出现的顺序

分析:

1.使用Scanner类获取一个字符串

2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap

3.遍历字符串得到每一个字符并将其作为TreeMap的键

4.通过键去集合中找相对应的值,看返回值是什么?

返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储

返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储

5.遍历集合

public class TreeMapDemo {
  public static void main(String[] args) {
      //创建TreeMap集合对象
      TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();
      //创建Scanner对象

      Scanner sc=new Scanner(System.in);
      System.out.println("请输入一个字符串");
      String s=sc.nextLine();
      //遍历字符串
      for (int i=0;i<s.length();i++){
          //获取每一个字符
          char key =s.charAt(i);
          //拿到的每一个字符到集合中找相对应的值
          Integer value=tm.get(key);
          //判断返回值
          if (value==null){
              tm.put(key,1);
          }else {
              value++;
              tm.put(key,value);
          }
      }
      //遍历集合并拼接
      StringBuilder sb=new StringBuilder();
      Set<Character> keySet=tm.keySet();
      for (char key :keySet){
          Integer value=tm.get(key);
          sb.append(key).append("(").append(value).append(")");

      }
      String result = sb.toString();
      System.out.println(result);
  }
}

 

推荐阅读