Java统计各个单词的个数并排序.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:2 大小:28KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java统计各个单词的个数并排序.doc

Java统计各个单词的个数并排序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

这个比较简单,我用来练练手,觉得好玩,便把代码贴出来,比如说我们统计"hello,mynameisTom,whatisyourname?hesaid:\"mynameisJohn\"";这句英语中单词的总数和各个单词的数量并排序输出,运行结果如下:总共单词数:15is:3name:3my:2hello:1said:1what:1Tom:1your:1John:1he:1直接上代码:[plain]HYPERLINK"http://blog.csdn.net/pzhtpf/article/details/7536798#"viewplainHYPERLINK"http://blog.csdn.net/pzhtpf/article/details/7536798#"copyimportjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.StringTokenizer;importjava.util.Map.Entry;publicclasswordCount{publicstaticvoidmain(Stringarg[]){intwordCount=0;//用于统计单词的总个数Map<String,Integer>map=newHashMap<String,Integer>();//用于统计各个单词的个数,排序Stringsentence="hello,mynameisTom,whatisyourname?hesaid:\"mynameisJohn\"";StringTokenizertoken=newStringTokenizer(sentence);//这个类会将字符串分解成一个个的标记while(token.hasMoreTokens()){//循环遍历wordCount++;Stringword=token.nextToken(",?.!:\"\"''\n");//括号里的字符的含义是说按照,空格?.:""''\n去分割,如果这里你没明确要求,即括号里为空,则默认按照空格,制表符,新行符和回车符去分割if(map.containsKey(word)){//HashMap不允许重复的key,所以利用这个特性,去统计单词的个数intcount=map.get(word);map.put(word,count+1);//如果HashMap已有这个单词,则设置它的数量加1}elsemap.put(word,1);//如果没有这个单词,则新填入,数量为1}System.out.println("总共单词数:"+wordCount);sort(map);//调用排序的方法,排序并输出!}publicstaticvoidsort(Map<String,Integer>map){List<Map.Entry<String,Integer>>infoIds=newArrayList<Map.Entry<String,Integer>>(map.entrySet());Collections.sort(infoIds,newComparator<Map.Entry<String,Integer>>(){publicintcompare(Map.Entry<String,Integer>o1,Map.Entry<String,Integer>o2){return(o2.getValue()-o1.getValue());}});//排序for(inti=0;i<infoIds.size();i++){//输出Entry<String,Integer>id=infoIds.get(i);System.out.println(id.getKey()+":"+id.getValue());}}}