通过学习学会了文本的访问,了解一点哈希表用途。经过网上查找做成了下面查询文章重复词的JAVA程序。
1 思

思路:

(1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中。

(2)定义一个Map,getkey是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。

(3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的getkey中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(第一次出现);

如果,在map的getkey中发现了该单词,则通过key找到对应的value(单词出现的次数),将该value加1,再次保存回map。

(4)遍历(3)中得到的map,输出getkey(单词)及对应的value(次数)。

2 流程图

package LIULAN;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class en {
public static void Count(File file){
 String str ="";
 String result = "";
  try {BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
  while((str = bufferedReader.readLine())!=null){result = result+str;}bufferedReader.close();
  }
  catch (Exception e) {
   
  }
  System.out.println(result);
  Map<String, Integer> map = new HashMap<String, Integer>();
  Pattern p = Pattern.compile("[, . ; ! ? ]");
  Matcher m = p.matcher(result);
  String [] strs = p.split(result);
  for(int i=0;i<strs.length;i++)
{ if(map.containsKey(strs[i])){int c = map.get(strs[i]);
  c++;map.put(strs[i], c);
                        }else{map.put(strs[i], 1);
 }
}
  Set set = map.entrySet();
  Iterator it = set.iterator();
  int min  = 100;
  int max = 0;
  String minWord = "";
  String maxWord = "";
  int x = 0;
  while (it.hasNext()) {Entry<String, Integer> me = (Entry) it.next();
  if((int) me.getValue()<min&&!((String) me.getKey()).equals("")){min = (int) me.getValue();
  minWord = (String) me.getKey();
  }
  if((int) me.getValue()>=max&&!((String) me.getKey()).equals(""))
      {
   max = (int) me.getValue();
   maxWord = (String) me.getKey();  
   }
  System.out.println(me.getKey()+":"+me.getValue());
                       }System.out.println("出现次数最多的是"+":"+max+"   "+maxWord);
                            }
 private void println(Map map){Set set = map.entrySet();
      Iterator it = set.iterator();
  while(it.hasNext()){Entry<String, Integer> entry = (Entry<String, Integer>) it.next();
  String key = entry.getKey();
  int value = entry.getValue();
  }
    }
  public static void main(String[] args){
   File file = new File("D:\\新建文件夹\\1\\KANWEN\\A.txt");
      Count(file);}
 }

信1705-2 软工作业最大重复词查询思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中。 (2)定义一个Map,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。 (3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的key中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(的更多相关文章

  1. [软工作业]-软件案例分析-CSDN

    [软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...

  2. 软工作业-----Alpha版本第一周小结

            软工作业-----Alpha版本第一周小结   Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...

  3. 【软工作业&思考】关于软工的一些概念性理解暨第一次阅读作业

    概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经验 ...

  4. BUAA2020软工作业——提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...

  5. 软工作业1—java实现wc.exe

    github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c     //返回文件 file.c 的字符数 ...

  6. 软工作业No.4

    2048小游戏—设计开发 软件需求规格说明书   甜美女孩 2018年10月 ——————————————————————————— 文档修改记录 日期 版本 说明 作者 2018-10-18 V1. ...

  7. 软工作业-四则运算(java实现)BY叶湖倩,叶钰羽

    四则运算生成器 BY-信安1班 叶湖倩(3216005170) 信安1班 叶钰羽(3216005171) 1. 项目介绍 源代码GitHub地址:https://github.com/yeyuyu/s ...

  8. 软工作业No.3--团队作业:甜美女孩出击!

    队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...

  9. 软工作业NO.2小学生线上杨永信——四则运算题目生成

    项目题目:实现一个自动生成小学四则运算题目的命令行程序 github地址:https://github.com/a249970271/Formula 驾驶员:梁沛诗 副驾驶:曾祎祺 项目说明 自然数: ...

随机推荐

  1. 湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问

    本文仅以个人经历和个人观点作为参考.如能受益,不胜荣幸. 本文会不断的修正,更新.希望通过大家的互动最后能写出一份阅者受益的文章. 本文纯手打,会有错别字,欢迎指出,虚心接受及时更改. 小马过河,大牛 ...

  2. Java多线程并发最佳实践

    使用本地变量 尽量使用本地变量,而不是创建一个类或实例的变量. 使用不可变类 String.Integer等.不可变类可以降低代码中需要的同步数量. 最小化锁的作用域范围:S=1/(1-a+a/n) ...

  3. spring boot user authorities类图

  4. pandas DataFrame applymap()函数

    pandas DataFrame的 applymap() 函数可以对DataFrame里的每个值进行处理,然后返回一个新的DataFrame: import pandas as pd df = pd. ...

  5. TinyXML2 的使用

    TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树 ...

  6. ES6,Array.copyWithin()函数的用法

    ES6为Array增加了copyWithin函数,用于操作当前数组自身,用来把某些个位置的元素复制并覆盖到其他位置上去. Array.prototype.copyWithin(target, star ...

  7. docker打包centos增加中文支持

    docker打包centos增加中文支持 前言 使用的某个包的返回值,在本机测试时返回结果是中文,结果打包到docker后返回结果变英文了:猜测是系统语言的问题,进入docker测试了一下,发现果然是 ...

  8. json简介及JsonCpp用法

    [时间:2017-04] [状态:Open] [关键词:数据交换格式,json,jsoncpp,c++,json解析,OpenSource] json简介 本文仅仅是添加我个人对json格式的理解,更 ...

  9. 【HTTP】 认证和单点登录 【瞎写的…】

    ■ Cookie,Session,Token HTTP协议是一种无状态的协议.换言之,每一个HTTP请求在得到HTTP回应之后就会断开客户端到服务端的连接.客户端可能会有下一次请求,但是那是下一次的事 ...

  10. Java知多少(23)类的基本运行顺序

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...