基于java:读写一个英文的txt文件,记录单词个数,并输出十个出现最多的单词及出现的个数;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- class Word //定义单词类
- {
- String value; //具体的单词
- int geshu; //出现的个数
- Word next; //将单词链起来
- public Word(String value,int geshu) //带参构造函数
- {
- this.value=value;
- this.geshu=geshu;
- next=null;
- }
- public Word() //空构造函数
- {
- this.value="";
- this.geshu=0;
- next=null;
- }
- }
- public class r {
- public static void main(String args[]) throws IOException //主函数
- {
- Word word=new Word(); //单词的链头
- Word lian,xin;
- String str="";
- FileReader f=new FileReader("d:/text.txt"); //读取英文文件
- char[] c=new char[1]; //每次读取一个字母
- int b=0;
- boolean exist=false; //判断单词是否存在于 word 链中
- while((b=f.read(c))!=-1) //每次读取一个字母直到最后
- {
- //如果字符为 换行、空格、单引号、双引号、逗号、句号 则为一个单词的结束及另一个单词的开始
- 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("'"))
- {
- lian=word;
- while(lian!=null)
- {
- if(lian.value.equalsIgnoreCase(str)) //如果单词在单词链中存在,则单词个数++
- {
- lian.geshu++;exist=true;break;
- }
- else
- {
- lian=lian.next;
- }
- }
- if(exist==false) //如果不存在,则在单词链中添加
- {
- xin=new Word(str,1);
- xin.next=word.next;
- word.next=xin;
- str="";
- }
- else
- {
- exist=false;
- str="";
- }
- }
- else //单词
- {
- str+=String.valueOf(c);
- }
- }
- // 循环10次
- for(int i=1;i<=10;i++)
- {
- xin=new Word("",0);
- lian=word.next;
- //找到单词链中个数最多的
- while(lian!=null)
- {
- if(lian.geshu>xin.geshu)
- {
- xin=lian;
- }
- lian=lian.next;
- }
- //输出单词链中个数最多的
- System.out.println("弟"+i+"个 :"+xin.value+"个数:"+xin.geshu);
- lian=word;
- //删除单词链中单词个数最多的
- while(lian.next!=null)
- {
- if(lian.next.value.equalsIgnoreCase(xin.value))
- {
- lian.next=lian.next.next;
- break;
- }
- lian=lian.next;
- }
- }
- }
- }
思路:读写文件,
运用链表思想
通过空格、换行等字符设为单词的区分
每次通过遍历链表来查询链表中该单词是否已经存在
若存在,则单词个数加1;否则,在链表中添加此新单词
直到将文件读取完
查询次数最多的单词时
查询一个,则将此时最多的那个单词从链表中删除- 注意:1、链表通过 类中的对象成员来链接
2、注意文本的换行为\r\t
3、注意判断单词是否存在时的处理
4、注意读写文件部分
基于java:读写一个英文的txt文件,记录单词个数,并输出十个出现最多的单词及出现的个数;的更多相关文章
- 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...
- java将数据写入到txt文件中(txt有固定的格式)
java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...
- java存储数据到本地txt文件中
java存储数据,方便打印日志等 1.会覆盖以前的数据 try { File writeName = new File("D:\\data.txt"); // 相对路径,如果没有则 ...
- 关于Java里面File类创建txt文件重复???
private JButton getOpenButton() { if (openButton == null) { openButton = new JButton(); openButton.s ...
- Java导出List集合到txt文件中——(四)
有时候,需要将数据以一定格式导出到txt文件中.利用Java的IO可以轻松的导出数据到txt中. package Action.txt; import java.io.BufferedWriter; ...
- Java读写hdfs上的avro文件
1.通过Java往hdfs写avro文件 import java.io.File; import java.io.IOException; import java.io.OutputStream; i ...
- Java使用IO流读取TXT文件
通过BufferedReader读取TXT文件window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputSt ...
- 文件内容统计:对任意给定的.txt文件进行内容的字符数、行数、单词数进行统计
项目源码地址:https://gitee.com/xjtsh/projects 功能实现: wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file ...
- 基于Java语言的IO操作(文件复制)
public static void main(String[] args) { //获取复制开始前系统时间毫秒值 long start=System.currentTimeMillis(); //文 ...
随机推荐
- 老李推荐: 第1章1节《MonkeyRunner源码剖析》概述:前言
老李推荐: 第1章1节<MonkeyRunner源码剖析>概述:前言 前言 相信大家做过安卓移动平台UI自动化开发的必然会用过,至少听过MonkeyRunner这个名字.MonkeyR ...
- 腾讯IVWEB团队:WebRTC 点对点直播
作者:villainthr 摘自:villainhr WebRTC 全称为:Web Real-Time Communication.它是为了解决 Web 端无法捕获音视频的能力,并且提供了 peer- ...
- Ubuntu抛弃了Untiy转向Gnome,美化之路怎么办?不用怕咱一步一步大变身!
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 常用软件安装+系统软件卸载:http://www.cnblogs.com/du ...
- C# CodeFirst编程模型一
定义实体类型: 定义两个实体Menu和MenuCard,一个menu关联一个menucard,menucard包含对所有menu的引用. public class Menu { public int ...
- 一个简单的jquery左右列表内容切换应用
选中左边某个选项点击添加,即可将选中项添加到右边文本框中,点击选中全部即可将全部选项移到右边,移除按钮功能相同. html代码: <div id="main"> < ...
- AspNetPager 分页的详细用法(ASP.NET)
1.[添加AspNetPager.dll文件] 2.[使用方法] public static DataTable GetRecord(SystemModel.Pager mt, ref int Tot ...
- js中的IP格式正则匹配校验详解~
IPV4的格式为x:y:z:w,其中{x,y,z,w}属于{0~255}的正整数: 下面是其校验的正则表达式: function isIP(ip) { var re = /^(\d{1,2}|1\d ...
- MySQL数据库主从同步配置
主服务器必须打开开二进制日志. 主要是修改配置文件 , 一般在 linux 下安装的 mysql 配置文件是 my.cnf, 在 windwos 下是 my.ini, 修改主服务器配置文件 serve ...
- [编织消息框架][消息服务]jmx
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架,使用的是RMI技术. 比较经典的应用jdk bin目录下 jcons ...
- LeetCode 327. Count of Range Sum
无意看到的LeetCode新题,不算太简单,大意是给一个数组,询问多少区间和在某个[L,R]之内.首先做出前缀和,将问题转为数组中多少A[j]-A[i] (j>i)在范围内. 有一种基于归并排序 ...