老师,这绝对是我一行一行敲出来的
2014-03-24 22:50
176 查看
要求:写一个程序,分析一个文本文件中各个人名出现的频率,并且把频率最高的10个词打印出来。文本文件大约是30KB~300KB大小。
输入文本:jidushan.txt(基督山伯爵英文小说节选,300kb),输出文本:result.txt。
实现思想:
1、载入文本
2、处理字符流,用空格分离单词,用正则方程式去除字母意外的符号。
3、检测单词是否需要屏蔽,从单词长度和设置屏蔽单词入手。
4、输出结果文本。
主类代码如下:
功能类代码如下:
结果截图
输入文本:jidushan.txt(基督山伯爵英文小说节选,300kb),输出文本:result.txt。
实现思想:
1、载入文本
2、处理字符流,用空格分离单词,用正则方程式去除字母意外的符号。
3、检测单词是否需要屏蔽,从单词长度和设置屏蔽单词入手。
4、输出结果文本。
主类代码如下:
package wzh; public class computeWork { public static void main(String[] args) { Work work = new Work(); work.addFile( "jidushan.txt" ); work.createResultFlie( "result.txt" ); } }
功能类代码如下:
<pre code_snippet_id="254544" snippet_file_name="blog_20140324_2_9634156" name="code" class="javascript">package wzh; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; 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 Work { private BufferedReader br; private Map map = new HashMap<String,Integer>(); private List<Map.Entry<String, Integer>> infoIds; private ArrayList< String >maskWord ; public Work() { // 设置屏蔽单词 maskWord = new ArrayList<String>(); String[] words = { "None" , "Have" , "You" , "And" , "When" , "Well" , "It" , "Yes" , "What", "Nothing" , "Then" , "They" , "Sometimes" , "This" , "Why" , "After" , "There" , "XVIII" , "With" , "True" , "Come", "Because" , "How" , "Never" , "These" , "Will" , "Father" , "Your" , "Here" , "Shall" , "That" , "However" , "Wait" , "Where" , "Speak" , "Hallo" , "After" , "Really" , "Thats" , "Very", "Suddenly" , "Tell" , "Thanks" ,"Take" ,"Island" ,"Count" ,"Captain" }; int i = 0; while( i<words.length ) { maskWord.add( words[i] ); i++; } } //加载输入文本 public void addFile(String fileName) { try { br = new BufferedReader(new FileReader(fileName)); readWord(br); } catch (FileNotFoundException e) { e.printStackTrace(); } } //输出结果文本 public void createResultFlie( String fileName) { int i = 0; BufferedWriter bw; try { bw = new BufferedWriter( new FileWriter( fileName )); for (; i < 100; i++) { String id = infoIds.get(i).toString(); bw.write( id ); bw.newLine(); } bw.flush(); bw.close(); br.close(); } catch (IOException e) { e.printStackTrace(); } } //读入字符流,处理文本 private void readWord( BufferedReader br ) { String lineStr , word ; StringTokenizer sto ; try { while( (lineStr = br.readLine()) != null){ sto = new StringTokenizer(lineStr); while ( sto.hasMoreElements() ) { word = sto.nextToken(); checkWordToAdd( word ); } } sortWord(); } catch (IOException e) { e.printStackTrace(); } } //检测单词 private void checkWordToAdd( String str ) { str = str.replaceAll("[^a-zA-Z]", ""); if( str.length() <=3 || maskWord.contains(str) ) return; if( str.substring(0,1).matches("[A-Z]") ) { if( map.containsKey(str) ) { int wordNum = (int)map.get( str ); map.put( str , wordNum+1 ); } else { map.put( str , 1 ); } } } //排序 private void sortWord() { infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); } }
结果截图
相关文章推荐
- 一老师整理出来的C#学习网站,对大家很有帮助的。
- 学PHP,一个字,爽!!!!!!!看看台湾孙仲岳老师的讲解诙谐幽默,那绝对是大陆所不能比的
- 请老师给我改一下程序,我实在是不知道错哪了,花了好长时间都没运行出来,任务二
- 一老师整理出来的C#学习网站
- 老师,我上课听得懂,但是敲不出来代码怎么办?
- 编程练习/某班的成绩出来了,现在老师要把班级的成绩打印出来。
- 一个英文老师的难题-你做的出来吗?
- 好的程序员绝对是靠练出来的。
- 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
- 一老师整理出来的C#学习网站,对大家很有帮助的
- 学习方法之------如何啃书(转)|||我(本人)的编程入门之路,就是看书看出来的,而非看视频教程或者老师教出来的。
- 高考语文 古诗给力绝对 对不起老师 古诗背窜了
- 黑马程序员--写给各位同学,并致黑马各位老师的一封感谢信~~~~绝对给力
- .net 程序员—初中英语老师教出来的水平
- 把文本文件一行一行读出来
- 今天的计算机课上,老师给同学们出了一道题: 输入n个数,请将其中的偶数的二进制反转。 eg:输入1 6 5 其中6是偶数,二进制表示为110,反转后为011,代表3,所以最终输出1 3 5. 小贱君最近脑子不怎么好使,想了半天也没想出来如何做,最后他向你寻求帮助了,帮帮可怜的小贱君吧!
- spring mvc 读取绝对路径地址,显示出来
- 我在小学和中学里都遇到了很好的老师(背诵很重要,做事要规范,习惯很重要,习惯是靠平时每一个细节重复出来的)
- 一个老师整理出来的c#学习资料
- [转帖]老师,对不起(绝对爆笑)