機試題:檢索一個字符串中每個字符出現的個數

遇到的機試題

import java.util.*;


public class Demo{
    public static void main(String args[])throws Exception{
      String str = "skjaghakioutreitou"; //要檢索的字符串
      char[] arr = str.toCharArray(); //將字符串轉換成字符數組
      Map<Character,Integer> map = Demo.charNoum(arr); // 直接在主方法中調用檢索的方法,返回一個map集合
      Iterator it = map.entrySet().iterator();  //使用iterator遍歷map集合
      while(it.hasNext()){
          Map.Entry p = (Map.Entry)it.next();
          System.out.println(p.getKey()+"出現的次數是:"+p.getValue());

      }
    }
    public static Map<Character,Integer> charNoum(char[] args){  //傳入的參數是字符數組,返回map集合
        Map<Character,Integer> map = new TreeMap<>();  //實例化一個treeMap 
         for(int i=0;i<args.length;i++){   
             char temp = args[i];      //遍歷得到每個字符
             if(!map.containsKey(temp)){  //判斷字符是否在key中存在,不存在初始化為1
                 map.put(temp,1);    // 字符自動裝箱為Character對象
             }else{
                 int auto = map.get(temp)+1;  // 如果存在,通過key取出value 將數值加1
                 map.put(temp,auto);
             }
         }
         return map;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容