首页 > 代码库 > 英文词频统计

英文词频统计

需求分析

  1、读取文本文件并在结果中显示(也可以选择不显示)

  2、统计单词出现的次数

  3、对结果进行排序、输出

功能实现

  1、在结果中显示文本内容

  File yw = new File("java.txt"); //使用循环读取本地文本文件“java.txt”中的字符并显示出来
  FileInputStream cp = new FileInputStream(yw);
  char yy;
  System.out.println("该文件中的内容如下:");
  for(int i=0;i<yw.length();i++){
  yy=(char)cp.read();
  System.out.print(yy);
  }
  System.out.println();
  cp.close();

  2、用BuffereReader类读取文本,用TreeSet对单词进行排序 ,并用String[ ]保存分隔都的字符

  BufferedReader bf = new BufferedReader(new FileReader("java.txt"));//使用缓冲区创造缓冲字符输入流
  StringBuffer sbf = new StringBuffer(); //动态字符串数组
  Set<String> SetSer = new TreeSet<String>();//String类型的对象的集合Set,并且是词语的首字母是有序的
  String temp = bf.readLine(); //读取文本行
  while(temp !=null ){
  sbf.append(temp+" "); //往动态字符串数组里添加数据
  temp = bf.readLine();
  }
  String[] Str = sbf.toString().split("[^A-Za-z0-9]"); //进行分隔字符,并保存到数组里

  3、使用循环对单词出现次数进行统计

  for(String string:Str){ //使用循环将分离出来的词语与整体进行对比、统计,若词语重复,则数量增加;否则词语更新
  SetSer.add(string);
  }
  for(String childString:SetSer){
  System.out.print(childString);
  int count = 0;
  for(String fatherString : Str){
  if(fatherString.equals(childString)){
  count++;
  }
  }
  System.out.println("出现"+count+"次"); //结果输出
  }

结果输出显示

 1、部分文本内容显示

  该文件中的内容如下:
  General Westmoreland, General Grove, distinguished guests, and gentlemen of the
  Corps!
  As I was leaving the hotel this morning, a doorman asked me, "Where are you
  bound for, General?" And when I replied, "West Point," he remarked, "Beautiful
  place. Have you ever been there before?"
  No human being could fail to be deeply moved by such a tribute as this [Thayer
  Award]. Coming from a profession I have served so long, and a people I have loved
  so well, it fills me with an emotion I cannot express. But this award is not intended
  primarily to honor a personality, but to symbolize a great moral code -- the code of
  conduct and chivalry of those who guard this beloved land of culture and ancient
  descent. That is the animation of this medallion. For all eyes and for all time, it is an
  expression of the ethics of the American soldier. That I should be integrated in this
  way with so noble an ideal arouses a sense of pride and yet of humility which will be
  with me always: Duty, Honor, Country.
  2、部分单词统计结果

  20出现2次
  All出现1次
  Always出现3次
  American出现3次
  And出现4次
  Are出现3次
  As出现2次
  Award出现1次
  Beautiful出现1次
  But出现6次
  Coming出现1次
  Corps出现4次
  Country出现7次
  Divine出现1次
  Duty出现7次
  Every出现1次
  Everything出现1次
  First出现1次
  For出现2次
  From出现2次
  General出现3次
  God出现1次
  Gray出现1次
  Grove出现1次
  Have出现1次
  He出现5次
  His出现1次
  Honor出现7次
  However出现1次
  I出现24次
  In出现5次
  It出现1次
  Its出现1次
  Let出现1次
  Line出现1次
  Long出现1次
  Maker出现1次
  My出现2次
  Nation出现1次
  No出现2次
  On出现1次
  Only出现1次

总结

  因为之前的基础不是很好,所以参考了网上和书上的很多资料,但是通过自己的学习,对文本文件的读取及字符统计等方面有了深刻的了解,

  希望自己能不断努力,在学习中不断进步。

英文词频统计