package com.swift; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public... ...
package com.swift; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Test3_String_char { public static void main(String[] args) { /* * 第4題: 取出一個字元串中字母出現的次數。如:字元串:"abcdekka27qoq" ,輸出格式為:a(2)b(1)k(2)... */ String str="abcdekka27qoq"; char[] charArray=str.toCharArray(); Map<Character,Integer> map=new HashMap<Character,Integer>(); //第一遍自動過濾掉相同的元素放進map for(char c:charArray) { map.put(c, 0); } Set<Character> set=map.keySet(); for(char c:set) { System.out.print(c+"("+map.get(c)+")"); } //第二遍把原始的數組拿過來,與map中相比較,包含則num+1,刪除錯的,增加對的,再包含再加1,再刪除錯的,增加對的 for(char c:charArray) { if(map.containsKey(c)) { int num=map.get(c)+1; map.remove(c); map.put(c, num); } } System.out.println(); for(Map.Entry<Character, Integer> entry:map.entrySet()) { System.out.print(entry.getKey()+"("+entry.getValue()+")"); } System.out.println(); Set<?> entrySet=map.entrySet(); Iterator<?> it=entrySet.iterator(); while(it.hasNext()) { Entry<Character,Integer> entry=(Entry<Character,Integer>) it.next(); System.out.print(entry.getKey()+"("+entry.getValue()+")"); } } }