1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 用java统计英文文本的单词个数_统计文本英文单词总个数 并列出每个单词的个数...

用java统计英文文本的单词个数_统计文本英文单词总个数 并列出每个单词的个数...

时间:2022-12-31 17:05:15

相关推荐

用java统计英文文本的单词个数_统计文本英文单词总个数 并列出每个单词的个数...

package test;

/*

* Task :统计文本英文单词总个数,并列出每个单词的个数

*

* Date:.02.26

*

*Author:璀若星辰

* */

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Collections;

import parator;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import java.util.TreeMap;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class IO_Word {

public static ListIo_word(String str)throws Exception{

File file = new File(str);

int n = 0;//文章中单词总数

TreeMap myTreeMap = new TreeMap();//存放键值对

Object word = null;//文章中的单词

Object num = null;//出现的次数

FileInputStream fis = new FileInputStream(file);

try{

InputStreamReader isr = new InputStreamReader(fis, "gb2312");

try{

BufferedReader br = new BufferedReader(isr);

try{

List all = new ArrayList();

String temp = br.readLine();

while (temp !=null){

all.add(temp);

temp = br.readLine();

}

//System.out.println("all="+all.size());

// System.out.println(all.get(0));

Pattern expression = pile("[a-zA-Z]+");//定义正则表达式匹配单词

String string1 = all.toString().toLowerCase();//转换成小写

Matcher matcher = expression.matcher(string1);//定义string1的匹配器

while(matcher.find()){

word = matcher.group();//得到一个单词—树映射的键

//System.out.println("word="+word);

n++;

if(myTreeMap.containsKey(word)){

num = myTreeMap.get(word);//得到单词出现的次数

Integer count = (Integer)num;

myTreeMap.put(word, new Integer(count.intValue()+1));

}else {

myTreeMap.put(word, new Integer(1));//否则单词第一次出现,添加到映射中

}

}

System.out.println("统计分析如下:");

System.out.println("txt文章中单词总数"+ n +"个");

/*Iterator iter = myTreeMap.keySet().iterator();//得到树映射键集合的迭代器

while(iter.hasNext()){

key = iter.next();

System.out.println(((String)key+"-"+myTreeMap.get(key)));

}*/

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

System.out.println("list="+list.size());

Collections.sort(list,new Comparator>(){

public int compare(Map.Entryzj, Map.Entry zz) {

return (zz.getValue() - zj.getValue());

}

});

for (Entry entry : list) {

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

}

return all;

}finally{

br.close();

}

}finally{

isr.close();

}

}finally{

fis.close();

}

}

public static void main(String[] args) {

try {

IO_Word.Io_word("D:/abc.txt");

} catch (Exception e) {

e.printStackTrace();

}

}

}

运行结果效果如下

原文:/u012631267/article/details/19975307

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。