方法一:
採用HashMap
public static void count(String str){
//將字符串轉化爲字符數組
char[] chars = str.toCharArray();
//創建一個HashMap名爲hm
HashMap<Character,Integer> hm = new HashMap();
//定義一個字符串c,循環遍歷遍歷chars數組
for(char c : chars){
//containsKey(c),當c不存在於hm中
if(!hm.containsKey(c)){
hm.put(c,1);
}else{
//否則獲得c的值並且加1
hm.put(c, hm.get(c)+1);
}
//或者上面的if和else替換成下面這一行
/* hm.put(c,hm.containsKey(c) ? hm.get(c)+1:1);*/
}
for(Character key: hm.keySet()){
//hm.keySet()代表所有鍵的集合,進行格式化輸出
System.out.println(key + "====" + hm.get(key));
}
}
}
方法二:
public static void count(String str){
//創建26個空間大小的數組,存放26個字母
int[] nums = new int[26];
for(char i: str.toCharArray()){
//自動將char i轉化成ascall碼
if(i>=97 && i<= 122){
//利用數組的索引進行存儲
nums[i-97]++;
}
}
for(int i = 0; i< nums.length; i++){
if(nums[i] != 0){
//i加上97並且再轉化爲char類型就可以顯示相應的字符
char j = (char)(i+97);
System.out.println( j + "====" + nums[i]);
}
}
}
public static void main(String[] args) {
// TODO 自動生成的方法存根
String str = "abcaaaefdabbhg";
count(str);
}