Map集合应用 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...

2018-01-14 19:07:20来源:cnblogs.com作者:Advancing-Swift人点击

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

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台