https://blog.csdn.net/seagal890/article/details/92067644

JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)

写一个 JAVA程序以统计一个文本文件 words.txt 中每个单词出现的频率。

为了简单起见,你可以假设:

words.txt只包括小写字母和 ' ' 。

每个单词只由小写字母组成。

单词间由一个或多个空格字符分隔。

示例:

假设 words.txt 内容如下:

the day is sunny the the

the sunny is is

你的脚本应当输出(以词频降序排列):

the 4

is 3

sunny 2

day 1

说明:

不要担心词频相同的单词的排序问题,每个单词出现的频率都是唯一的。

算法设计

package com.bean.algorithm.basic;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.StringTokenizer;

public class CountWords {

public static void main(String[] args) {

long startTime = System.currentTimeMillis(); // 获取开始时间

String string = "";

Map map = new HashMap();

try {

//读取文件

FileInputStream fis = new FileInputStream("G://CountWords.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String temp = "";

try {

while ((temp = br.readLine()) != null) {

string = string + temp;

}

} catch (IOException e) {

// TODO: handle exception

e.printStackTrace();

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

// 分割字符串

StringTokenizer st = new StringTokenizer(string); // 用于切分字符串

//初始化计数器

int count;

//初始化word变量

String word;

while (st.hasMoreTokens()) {

//逗号,问号,句号,感叹号,冒号,双引号,单引号,换行符号

word = st.nextToken(",?.!:\"\"' '\n");

if (map.containsKey(word)) {

// HashMap 保存数据

count = map.get(word);

//计数器累加

map.put(word, count + 1);

} else {

map.put(word, 1);

}

}

// 排序

Comparator> valueComparator = new Comparator>() {

public int compare(Map.Entry o1, Map.Entry o2) {

return o2.getValue() - o1.getValue();

}

};

// 输出结果

List> list = new ArrayList>(map.entrySet());

Collections.sort(list, valueComparator);

System.out.println("---------------------Words分析结果 ——— 输出结果----------");

for (Map.Entry entry : list) {

System.out.println(entry.getKey() + ":" + entry.getValue());

}

long endTime = System.currentTimeMillis(); // 获取结束时间

System.out.println("程序运行时间: " + (endTime - startTime) + "ms");

}

}

样例文本如下:

if you just want to try running findbugs against your own code, you can run findbugs using javawebstart. this will use our new gui under Java 1.5+ and our old gui under java 1.4. the new gui provides a number of new features, but requires java 1.5+. both use exactly the same analysis engine.

程序运行结果

---------------------Words分析结果 ——— 输出结果----------

new:3

1:3

gui:3

use:2

our:2

java:2

5+:2

you:2

the:2

findbugs:2

under:2

but:1

code:1

against:1

own:1

run:1

your:1

running:1

can:1

number:1

features:1

same:1

engine:1

and:1

provides:1

of:1

if:1

just:1

Java:1

a:1

using:1

will:1

old:1

want:1

this:1

exactly:1

analysis:1

both:1

4:1

javawebstart:1

try:1

to:1

requires:1

程序运行时间: 6ms

标签:段落,util,JAVA,java,word,单词,map,new,import

来源: https://blog.csdn.net/mrlin6688/article/details/100556510

java 计算i 出现的次数_JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)...相关推荐

  1. java 单词出现次数_java 获取一段英文中每个单词出现的次数

    /** *获取一段英文中每个单词出现的次数 */ import java.util.HashMap; import java.util.Iterator; import java.util.Scann ...

  2. java统计单词出现次数_java-统计一段句子中各单词出现的次数

    问题:统计一段句子中各单词出现的次数. 思路: 1.使用split方法将文章进行分割,我们这里以空格.逗号和句点为分隔符,然后存到一个字符串数组中. 2.创建一个hashMap集合,key是字符串类型 ...

  3. 使用Eclipse开发工具运行MapReduce统计单词出现次数

    使用Eclipse开发工具运行MapRuce统计单词出现次数 1.##我在这里将原先准备好的10000个单词的英语文章通过U盘移动到了Ubuntu系统中,也可以通过其它的方式,比如FTP传输或者将Ub ...

  4. 每天一个小程序—0004题(统计单词出现次数)

    第 0004 题: 任一个英文的纯文本文件,统计其中的单词出现的个数. 先给出我一开始写得,只能说非常不优美,一个一个字符搞得... 1 f = open('num.txt') 2 word = [] ...

  5. java计算根号二的无穷_java怎么计算根号

    java怎么计算根号 [2021-02-06 16:45:24]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\s ...

  6. java最多保留两位小数_java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧mport java.text.DecimalFormat; DecimalFormat    df   = new De ...

  7. 代码实现——MapReduce统计单词出现次数

    需求 对以下txt文档进行单词出现次数统计(txt文档在/Users/lizhengi/test/input/目录下) hadoop take spring spark hadoop hdfs map ...

  8. python英文单词及其出现次数-Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  9. python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...

    代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...

最新文章

  1. 【贪心】Google Code Jam Round 1A 2018 Waffle Choppers
  2. OpenGL raytracer光线追踪的实例
  3. 图片怎么等比缩放_mac图像缩放工具Teorex iResizer
  4. 计算机上播放时没声音什么故障,事实:在笔记本电脑上播放歌曲时如果没有声音怎么办...
  5. CodeForces 501B——Misha and Changing Handles
  6. ROS( C++ )订阅 robot 的 path 话题
  7. 微软Code Hunt答案(00-05)——沉迷娱乐的我
  8. xampp apache无法启动的解决方法
  9. 怎样用DNSPod做负载均衡?
  10. 企业如何选择固定资产管理系统?
  11. 李少白讲摄影-不放过一切光线 地坛书市新书首发圆满结束
  12. html画布创建黑白象棋棋盘,canvas应用——中国象棋棋盘
  13. 【Linux】Centos设置Python的软链接
  14. SpringBoot+Mybatis+Mysql结合微信小程序实现登录
  15. 微软ipv6服务器,IPv6用户危险了!Win10出现严重安全漏洞
  16. 四个小诀窍 告诉你雪景怎么拍才能更好看
  17. Eclipse开启弹出Subversive Connector Discovery窗口解决办法
  18. android一键换机功能实现,不同品牌手机一键换机教程
  19. ASUS(华硕) 天选air系统 2022 FX517ZC FX517ZE FX517ZM FX517ZR原厂Windows11系统 工厂系统安装 带一键恢复 华硕原厂系统ROG系统下载华硕OEM系统
  20. Python量化学习笔记02——量化投资——以Python为工具 Part01-C02

热门文章

  1. 神奇却又随处可见的斐波那契曲线...
  2. 送什么给女朋友最致命?
  3. 史上最让数学家无奈的规定!背后真相让人不敢相信,可是没有人能证明对错.........
  4. 大型打脸现场!被藐视的少女摇身一变成为“抽象代数之母”,哲学教授只能跪地喊爸爸...
  5. 这个24岁北航博士刚毕业就受聘211大学副教授,他大一就保研,学术能力太牛了.........
  6. 上大学后男生的两种变化
  7. 朴素贝叶斯--文档分类
  8. python核心模块之pickle和cPickle讲解
  9. oss多线程 上传_oss-android/ios-sdk 断点续传(多线程)
  10. 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!