统计文章的单词个数

标签: 统计 文章 单词 | 发表时间:2012-10-03 14:21 | 作者:
出处:http://www.iteye.com
package com.lr.string;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
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 WordCount {
	public static void main(String[] args) {
		String str = null;
		int WordCount = 0;
		Map<String, Integer> map = new HashMap<String, Integer>();
		List<Map.Entry<String, Integer>> listMap = null;
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					new FileInputStream(new File(
							"src/com/lr/string/WordCount.java"))));
			while ((str = br.readLine()) != null) {
				StringTokenizer token = new StringTokenizer(str);
				while (token.hasMoreTokens()) {
					String word = token
							.nextToken("+*!:@=\\\"\';?><,./\n\t {()");
					if (map.containsKey(word)) {
						map.put(word, map.get(word) + 1);
					} else {
						map.put(word, 1);
					}
					WordCount++;
				}
			}// while
			listMap = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
			Collections.sort(listMap,
					new Comparator<Map.Entry<String, Integer>>() {
						@Override
						public int compare(Map.Entry<String, Integer> map1,
								Map.Entry<String, Integer> map2) {
							return (map1.getValue().compareTo(map2.getValue()));
						}
					});
			for (Map.Entry<String, Integer> m : listMap) {
				System.out.println(m.getKey() + ":" + m.getValue());
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 结果:

getKey:1
for:1
args:1
package:1
println:1
else:1
static:1
get:1
compare:1
nextToken:1
class:1
compareTo:1
0:1
String[]:1
readLine:1
try:1
sort:1
entrySet:1
if:1
src:1
System:1
return:1
n:1
void:1
main:1
hasMoreTokens:1
containsKey:1
t:1
Override:1
out:1
InputStreamReader:2
com:2
br:2
Collections:2
int:2
1:2
FileNotFoundException:2
map2:2
map1:2
printStackTrace:2
put:2
IOException:2
lr:2
Comparator:2
catch:2
ArrayList:2
List:2
HashMap:2
File:2
FileInputStream:2
string:2
StringTokenizer:3
str:3
getValue:3
while:3
token:3
null:3
m:3
BufferedReader:3
public:3
listMap:4
WordCount:4
e:4
word:5
Entry:6
map:6
io:6
util:7
Map:8
new:8
Integer:8
String:10
}:12
import:13
java:14

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [统计 文章 单词] 推荐:

统计文章的单词个数

- - ITeye博客
已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

囧记单词:第八波

- 贝贝龙 - 煎蛋
# 囧记单词系列以无聊图+英语学习小卡片方式颇受欢迎. 最新的第八波投稿如下,图来自他的腾腾讯微博和新浪微博,前七波在这里. 祝大家2011,发发发发发~~~给煎蛋和各位蛋定不蛋定蛋疼不蛋疼的同学们拜个年. © 投递 for 煎蛋 / 18回复 / 投稿 / 图片托管于又拍网. 飞利浦OLED幕墙,在马赛克前翩翩起舞.

囧记单词:第六波

- 贝贝龙 - 煎蛋
# 善于用网络热门搞笑图片制作英语单词小卡片的囧仔又来稿了,他托我们祝同学们新年快乐. 复习:[1]、[2]、[3]、[4]、[5].

文章: HTML5之美

- - InfoQ cn
如今大热的HTML5到底美在哪里. HTML5到底能为实际的移动开发带来哪些改变. 来自阿里云云手机服务运营部的前端开发工程师 正邪 (廖健)分享了他眼中的HTML5之美,主要讲诉HTML5的常见原理并从CSS、JavaScript和框架三个方面做了细致讲解:. 白伟民:酷狗音乐的HTML5实践(百度开发者大会广州站 5月31日 免费报名).

技术文章的质量

- Kai Chen - 4G spaces
推友 @StarrySource 就微薄和推特的好坏问题写了一篇文章,正好和霍炬的文章同时发出来,推特上对这两篇文章叫好的人不少,其中还有一些直接就说 StarrySource 这篇比 virushuo 写得好. 文章好坏诚然是个很主观的事情,不过就仅从文章内容来说,就算有一千个读者一千个主观标准,我也想不出什么理由来说明 StarrySource 的这篇比 virushuo 写得好,因为客观上这两篇文章的差距会抵充掉主观上的一些好恶.

英文文章編輯checklist

- friedvan - 研究生2.0
相信我,如果你想要在學術圈混下去,想要將文章投稿到國際期刊,不管是什麼領域,英文寫作都是非常重要的. 有句話是這麼說的:好的writing讓你上天堂,不好的writing帶你住套房. 不喜歡這句的話,可以換成:好的writing給你publication,不好的writing給你rejection.

文章: Grails最佳实践

- - InfoQ cn
我在IntelliGrape工作,这是一家专门使用Groovy & Grails进行开发的公司. 本文是我们Grails项目遵循的最佳实践的基本清单,收集自邮件列表、Stack Overflow、博文, 播客和 IntelliGrape的内部讨论. 它们分为控制器、服务、Domain、视图、TagLib、测试和其他.

文章: 集成Lucene和HBase

- - InfoQ cn
在所有先进的应用程序中,不管是购物站点还是社交网络乃至风景名胜站点,搜索都扮演着关键的角色. Lucene搜索程序库事实上已经成为实现搜索引擎的标准. 苹果、IBM、Attlassian(Jira)、Wolfram以及很多大家喜欢的公司【1】都使用了这种技术. 因此,大家对任何能够提升Lucene的可伸缩性和性能的实现都很感兴趣.

文章: MVVM启示录

- - InfoQ cn
熟悉WPF或Silverlight的同学应该不会对MVVM模式感到陌生了,它把应用程序划分成视图、视图模型和模型三层,如图1所示:. 百度技术沙龙第二十五期:海量数据处理技术解析(4月7日 周六). 表面上,这个层次结构还蛮清楚的,但如果你细究每层应该包含什么,事情就没那么简单了. 视图应该是最容易理解的一个部分了,它通常是指用户可以看到的界面,一般都是通过XAML代码来实现的.

文章: XA事务处理

- - InfoQ cn
本文选自迷你书 《Java事务设计策略》的第五章,译者翟静. 百度技术沙龙第二十五期:海量数据处理技术解析(4月7日 周六). 为了说明X/Open XA接口在JTA事务管理中的重要性,以及它使用的时机,我们以前一章提到的一段固定收入交易的EJB代码为例:. 这段代码中,首先预置了一笔交易,而后执行交易,这两个操作更改了数据库中不同的表.