| 
 
| 本帖最后由 wkz_crystal 于 2015-3-22 00:07 编辑 
 如图所示:
 
 用entrySet可以实现,是正确的,但是用keySet为什么就不行呢?复制代码<font size="3">/*
统计一个字符串中“每种字母出现的次数”,并且打印出来
打印的格式:x(几次)y(几次)……
例如字符串:gfadgagkolauinaaf
【思路】
1.将字符串转化成为字符数组,因为要对每一个字母进行操作
2.定义一个map集合,因为打印结果的字母有顺序,所以要用到treemap集合
3.遍历字符数组
        将每一个字母作为健去查map集合,
        如果返回为null,将该字符和1存入到map集合中,
        如果返回不为null,说明该字符和对应的次数在集合中已经存在了,
        这时候,直接取出字符次数,自增之后再重新按照该健存入到集合中
*/
import java.util.*;
class GetCharNumber5
{
        public static void main(String[] args) 
        {
                String str="jfkl;ajf;lajfaljfl;afasfsadfds";
                getInfer(str);
        }
        public static void getInfer(String str)
        {
                char[] ch=str.toCharArray();
                TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
                for (int i=0; i<ch.length;i++ )
                {
                        Integer value=tm.get(ch[i]);
                        
                        if (value == null)
                        {
                                tm.put(ch[i],1);
                        }else 
                        {
                                value=value+1;
                                tm.put(ch[i],value);
                        }
                }
                
                /*StringBuffer sb=new StringBuffer();
                Set<Map.Entry<Character,Integer>> setMap=tm.entrySet();
                Iterator<Map.Entry<Character,Integer>> it=setMap.iterator();
                
                while (it.hasNext())
                {
                        Map.Entry<Character,Integer> me=it.next();
                        Character key=me.getKey();
                        Integer value=me.getValue();
                        sb.append(key+"("+value+")"+"、");
                }
                sop(sb);
                */
                StringBuffer sb=new StringBuffer();
                Set<Character,Integer> set=tm.keySet();
                Iterator<Character,Integer> it=set.iterator();
                while (it.hasNext())
                {
                        Character key=it.next();
                        Integer value=tm.get(key);
                        sb.append(key+"("+value+")"+"、");
                }
                sop(sb);        
        }
        
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}</font>
 | 
 
1.jpg
(248.83 KB, 下载次数: 26)
 
 类型变量数目错误;  |