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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹春洋 中级黑马   /  2014-1-10 22:27  /  964 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
public class Test5 {
/**把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
         a:  21 次
         b:  15 次
         c:: 15 次
         把:  7 次
         当:  9 次
         前:  3 次
         ,:30 次
  * @param args
  */
  public static void main(String[] args) throws IOException {
    // 读取d盘c.txt文本里的内容
    BufferedReader in = new BufferedReader(new FileReader("d:\\c.txt"));
    String str = new String(), s2 = new String();
    //将读取的字符放入str中
    while ((s2 = in.readLine()) != null)
    {
     str += s2;
    }
    //关闭输入流
    in.close();
    //将字符串强制转换为char[]数组
    char[] arry =str.toCharArray();
    int all = 0;
    //定义一个HashMap对象其中键是字符,值为字符的个数
    HashMap<Character, Integer> map = new HashMap<Character, Integer>();
    //遍历数组
    for (int i = 0; i < arry.length; i++)
    {
     //判断HashMap中是否有该字符。
     if(map.get(arry[i]) != null)
     {
      //把值存入all变量中
      all = map.get(arry[i]);
      //然后all加1,再把该字符和该字符出现的个数存入HashMap中
      map.put(arry[i], all + 1);
     }
     //该字符不在HashMap中
     else if (map.get(arry[i]) == null) {
      //把该字符添加到HashMap中,字符个数为1
      map.put(arry[i] , 1);
     }
    }
    //遍历Hash中的key
    for (Character c : map.keySet())
    {
     //输出次数
     System.out.print(c+":"+ map.get(c)+"次\n");
       }
  }
}


评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马