統計陣列中字串出現次數

2020-08-10 10:37:36

找出陣列中出現次數超過一半的數位

轉自找出陣列中出現次數超過一半的數位
在这里插入图片描述

統計字串中各個字元出現的次數

用雙列集合來實現

package cn.hky.exer;
import java.util.HashMap;
import java.util.Scanner;
public class Demo {    
    public static void main(String[] args) {    
        Scanner sc = new Scanner(System.in);        
        // ① 接收一個需要被統計字元的字串
        String s = sc.nextLine();        
        // ② 將字串轉換成字元陣列
        char[] arr = s.toCharArray();        
        // ③ 定義雙列集合,儲存字串字元以及字元出現的次數
        HashMap<Character, Integer> hm = new HashMap<>();        
        // ④ 遍歷字元陣列獲取每一個字元,並將字元儲存在雙列集閤中
        for (char c : arr) {            
            // ⑤ 儲存過程中要做判斷,如果集閤中不包含這個鍵
            // 就將該字元當作鍵,值爲1儲存,如果集閤中包含這個鍵
            // 就將值增加1儲存
            /*
             if(!hm.containsKey(c)){ //如果不包含這個鍵 
                 hm.put(c, 1); 
             } else{
                 hm.put(c,hm.get(c)+1); 
             }
             */
            hm.put(c, !hm.containsKey(c) ? 1 : hm.get(c) + 1);
        }        // ⑥列印雙列集合獲取字元出現的次數
        // hm.keySet()代表所有鍵的集合
        for (Character key : hm.keySet()) { 
            // hm.get(key)根據鍵獲取值
            System.out.print(key + "=" + hm.get(key)+" ");         
        }
    }
}