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()+")"); } } }