1. import java.io.FileNotFoundException;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4.  
  5. class Word //定义单词类
  6. {
  7. String value; //具体的单词
  8. int geshu; //出现的个数
  9. Word next; //将单词链起来
  10. public Word(String value,int geshu) //带参构造函数
  11. {
  12. this.value=value;
  13. this.geshu=geshu;
  14. next=null;
  15. }
  16. public Word() //空构造函数
  17. {
  18. this.value="";
  19. this.geshu=0;
  20. next=null;
  21. }
  22. }
  23. public class r {
  24. public static void main(String args[]) throws IOException //主函数
  25. {
  26. Word word=new Word(); //单词的链头
  27. Word lian,xin;
  28. String str="";
  29. FileReader f=new FileReader("d:/text.txt"); //读取英文文件
  30. char[] c=new char[1]; //每次读取一个字母
  31. int b=0;
  32. boolean exist=false; //判断单词是否存在于 word 链中
  33. while((b=f.read(c))!=-1) //每次读取一个字母直到最后
  34. {
  35. //如果字符为 换行、空格、单引号、双引号、逗号、句号 则为一个单词的结束及另一个单词的开始
  36. if(String.valueOf(c).equals("\r")||String.valueOf(c).equals("\n")||String.valueOf(c).equals(" ")||String.valueOf(c).equals(",")||String.valueOf(c).equals(".")||String.valueOf(c).equals("\"")||String.valueOf(c).equals("'"))
  37. {
  38. lian=word;
  39. while(lian!=null)
  40. {
  41. if(lian.value.equalsIgnoreCase(str)) //如果单词在单词链中存在,则单词个数++
  42. {
  43. lian.geshu++;exist=true;break;
  44. }
  45. else
  46. {
  47. lian=lian.next;
  48. }
  49. }
  50. if(exist==false) //如果不存在,则在单词链中添加
  51. {
  52. xin=new Word(str,1);
  53. xin.next=word.next;
  54. word.next=xin;
  55. str="";
  56. }
  57. else
  58. {
  59. exist=false;
  60. str="";
  61. }
  62. }
  63. else //单词
  64. {
  65. str+=String.valueOf(c);
  66. }
  67. }
  68. // 循环10次
  69. for(int i=1;i<=10;i++)
  70. {
  71. xin=new Word("",0);
  72. lian=word.next;
  73. //找到单词链中个数最多的
  74. while(lian!=null)
  75. {
  76. if(lian.geshu>xin.geshu)
  77. {
  78. xin=lian;
  79. }
  80. lian=lian.next;
  81. }
  82. //输出单词链中个数最多的
  83. System.out.println("弟"+i+"个 :"+xin.value+"个数:"+xin.geshu);
  84. lian=word;
  85. //删除单词链中单词个数最多的
  86. while(lian.next!=null)
  87. {
  88. if(lian.next.value.equalsIgnoreCase(xin.value))
  89. {
  90. lian.next=lian.next.next;
  91. break;
  92. }
  93. lian=lian.next;
  94. }
  95. }
  96. }
  97. }
    思路:读写文件,
    运用链表思想
    通过空格、换行等字符设为单词的区分
    每次通过遍历链表来查询链表中该单词是否已经存在
    若存在,则单词个数加1;否则,在链表中添加此新单词
    直到将文件读取完
    查询次数最多的单词时
    查询一个,则将此时最多的那个单词从链表中删除
  98.  
  99. 注意:1、链表通过 类中的对象成员来链接
    2、注意文本的换行为\r\t
    3、注意判断单词是否存在时的处理
    4、注意读写文件部分

基于java:读写一个英文的txt文件,记录单词个数,并输出十个出现最多的单词及出现的个数;的更多相关文章

  1. 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内

    查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...

  2. java将数据写入到txt文件中(txt有固定的格式)

    java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...

  3. java存储数据到本地txt文件中

    java存储数据,方便打印日志等 1.会覆盖以前的数据 try { File writeName = new File("D:\\data.txt"); // 相对路径,如果没有则 ...

  4. 关于Java里面File类创建txt文件重复???

    private JButton getOpenButton() { if (openButton == null) { openButton = new JButton(); openButton.s ...

  5. Java导出List集合到txt文件中——(四)

    有时候,需要将数据以一定格式导出到txt文件中.利用Java的IO可以轻松的导出数据到txt中. package Action.txt; import java.io.BufferedWriter; ...

  6. Java读写hdfs上的avro文件

    1.通过Java往hdfs写avro文件 import java.io.File; import java.io.IOException; import java.io.OutputStream; i ...

  7. Java使用IO流读取TXT文件

    通过BufferedReader读取TXT文件window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputSt ...

  8. 文件内容统计:对任意给定的.txt文件进行内容的字符数、行数、单词数进行统计

    项目源码地址:https://gitee.com/xjtsh/projects 功能实现: wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file ...

  9. 基于Java语言的IO操作(文件复制)

    public static void main(String[] args) { //获取复制开始前系统时间毫秒值 long start=System.currentTimeMillis(); //文 ...

随机推荐

  1. 老李推荐: 第1章1节《MonkeyRunner源码剖析》概述:前言

    老李推荐: 第1章1节<MonkeyRunner源码剖析>概述:前言   前言 相信大家做过安卓移动平台UI自动化开发的必然会用过,至少听过MonkeyRunner这个名字.MonkeyR ...

  2. 腾讯IVWEB团队:WebRTC 点对点直播

    作者:villainthr 摘自:villainhr WebRTC 全称为:Web Real-Time Communication.它是为了解决 Web 端无法捕获音视频的能力,并且提供了 peer- ...

  3. Ubuntu抛弃了Untiy转向Gnome,美化之路怎么办?不用怕咱一步一步大变身!

    跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 常用软件安装+系统软件卸载:http://www.cnblogs.com/du ...

  4. C# CodeFirst编程模型一

    定义实体类型: 定义两个实体Menu和MenuCard,一个menu关联一个menucard,menucard包含对所有menu的引用. public class Menu { public int ...

  5. 一个简单的jquery左右列表内容切换应用

    选中左边某个选项点击添加,即可将选中项添加到右边文本框中,点击选中全部即可将全部选项移到右边,移除按钮功能相同. html代码: <div id="main"> < ...

  6. AspNetPager 分页的详细用法(ASP.NET)

    1.[添加AspNetPager.dll文件] 2.[使用方法] public static DataTable GetRecord(SystemModel.Pager mt, ref int Tot ...

  7. js中的IP格式正则匹配校验详解~

    IPV4的格式为x:y:z:w,其中{x,y,z,w}属于{0~255}的正整数: 下面是其校验的正则表达式: function isIP(ip) { var re =  /^(\d{1,2}|1\d ...

  8. MySQL数据库主从同步配置

    主服务器必须打开开二进制日志. 主要是修改配置文件 , 一般在 linux 下安装的 mysql 配置文件是 my.cnf, 在 windwos 下是 my.ini, 修改主服务器配置文件 serve ...

  9. [编织消息框架][消息服务]jmx

    JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架,使用的是RMI技术. 比较经典的应用jdk bin目录下 jcons ...

  10. LeetCode 327. Count of Range Sum

    无意看到的LeetCode新题,不算太简单,大意是给一个数组,询问多少区间和在某个[L,R]之内.首先做出前缀和,将问题转为数组中多少A[j]-A[i] (j>i)在范围内. 有一种基于归并排序 ...