1. 程式人生 > 其它 >Java案例——用集合實現統計任意字串中字元出現的次數

Java案例——用集合實現統計任意字串中字元出現的次數

需求:鍵盤錄入一個字串,統計其中各個字元出現的順序

分析:

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);
  }
}