A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© axing110 中级黑马   /  2014-10-31 12:14  /  1658 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package test;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class test1 {
        public static void main(String[] args) throws IOException {
          Map<Character,Integer> map=new HashMap<>();
          BufferedReader buff=new BufferedReader(new FileReader("d:"+File.separator+"22.txt"));
          PrintWriter prin=new PrintWriter(new FileOutputStream("d:"+File.separator+"222.txt"),true);
          String str=null;
          char[] ch=null;
          while((str=buff.readLine())!=null)
          {
                  ch=str.toCharArray();
                  for(int i=0;i<ch.length;i++)
                  {
                          if(map.get(ch[i])==null)
                          {
                                  map.put(ch[i],1);
                          }
                          else
                          {
                                  int k=map.get(ch[i]);
                                  k++;
                                  map.put(ch[i],k);
                          }
                  }
          }
          Set<Map.Entry<Character,Integer>> set=map.entrySet();
          for(Iterator<Map.Entry<Character,Integer>> i=set.iterator();i.hasNext();)
          {
                  Map.Entry<Character,Integer>  k=i.next();
                  System.out.println(k.getKey()+"("+k.getValue()+")");
                  prin.println(k.getKey()+"("+k.getValue()+")");
          }
          
        }       

}

6 个回复

倒序浏览
楼主面试了?
回复 使用道具 举报
面试题没这么复杂题目吧.15-20分钟就要做两道,怎么可能写这么多
回复 使用道具 举报
wzg1015 发表于 2014-10-31 12:46
面试题没这么复杂题目吧.15-20分钟就要做两道,怎么可能写这么多

这手动的就那么几行代码 面试有比这难的  其实我想说楼主为什么不给几个中文字 说下题目
回复 使用道具 举报
光有代码没有题目这可如何是好呀
回复 使用道具 举报
楼主知道什么叫阅读性差吗?全是代码,看到好累
回复 使用道具 举报
/*
* 1、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
*
*
* 关于程序异常处理说明:
*    后面的程序有些异常非常的多。如果处理的话,会导致程序有点凌乱,所以都没有处理异常只是简单的抛出。

* */
public class test1 {

        public static void main(String[] args) {
            String str="感谢黑马程序员,感谢黑马程序员的每一位老师,谢谢你们";       
            char[] ch=str.toCharArray();//吧字符串转化为字符数组
                Map<Character,Integer> map=new HashMap<>();//建立一个map集合,
                for(int i=0;i<ch.length;i++)//循环,取得每一个元素
                {
                        if(map.get(ch[i])==null)//如果为空说明该元素还没有存储过,所以把1和该元素存储进去
                        {
                                map.put(ch[i],1);
                        }
                        else
                        {
                                int count=map.get(ch[i]);//如果该元素存在了就利用集合取出元素,并且的个数,并且做自增动作
                count++;
                                map.put(ch[i],count);
                        }
                }
                Set<Map.Entry<Character,Integer>> set=map.entrySet();//取出键值对entry。
                for(Iterator<Map.Entry<Character,Integer>> i=set.iterator();i.hasNext();)//通过循环遍历出每一个元素
                {
                        Map.Entry<Character,Integer> map1=i.next();
               String str1=map1.getKey().toString();
               String str2=map1.getValue().toString();
               System.out.print(str1+"("+str2+")");
               
                }

        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马