---恢复内容开始---
驾驶员:葛晨延(16012010)
领航员:张广哲(16012007)
码云:https://gitee.com/happywindmannn/GCYshixun1/tree/master
实训过程照片:

1 import java.io.*;2 import java.util.*;3 importjava.io.BufferedReader;4 importjava.io.FileReader;5 importjava.util.ArrayList;6 importjava.util.Map;7 importjava.util.List;8 importjava.util.Map.Entry;9 importjava.util.TreeMap;10 public classwtf{11 public static void main(String args[])throwsException{12 StringBuilder result = newStringBuilder();13 BufferedReader file = new BufferedReader(new FileReader("D:\\javas\\a.txt"));14 List s =new ArrayList();15 String s1 = null;16 while((s1 = file.readLine()) != null){17 String [] s2 = s1.split("[[^a-zA-Z]]");18 for(String s3 : s2){19 if(s3.length() != 0){20 s.add(s3);21 }22 }23 }24 Map TreeMap = new TreeMap();25 for(String s4:s){26 if(TreeMap.get(s4) != null){27 TreeMap.put(s4,TreeMap.get(s4)+1);28 }29 else{30 TreeMap.put(s4,1);31 }32 }33
34
35 System.out.println("以下是本文章中出现单词频率前十的单词,以及频率:\t");36 showmap(TreeMap);37 file.close();38 }39 public static void showmap(Mapoldmap){40
41 ArrayList> map = new ArrayList>(oldmap.entrySet());42
43 Collections.sort(map,new Comparator>(){44
45 public int compare(Entry o1, Entryo2) {46 return o2.getValue() -o1.getValue();47 }48 });49
50 for(int i = 0; i<10; i++){51
52 System.out.println(map.get(i).getKey()+ ": " +map.get(i).getValue());53 }54 }55
56 }
运行结果:

需求:
1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符。
2.统计英文单词在本文件的出现次数
3.将统计结果排序
4.显示排序结果
解题思路:
x代表对象
1.BufferedReader x = new BufferedReader(new FileReader(文件绝对路径));
缓冲流,更加油效率的读取文件,缓冲访问区(类似于内存条)。
另有方法readline()按行读取可以使用。
相比InputStream()字节流,FileReader()字符流更快。
2.List x = new ArrayList();
创建动态数组,<>中的位数组类型,如int,double,String。
该数组用于存储文章的所有单词。
3. String[] x = readLine.split("[^a-zA-Z]");
创建数组,用readLine()逐行过滤,括号内位正则表达式。
4.for(String x:y){}
“增强的for循环”,x为字符串,y为字符数组
作用是将数组内所有元素,赋值到x中,有多少元素创建多少个x。
5.Map x = new TreeMap();
HashMap x = new HashMap();
map树(有序) hashmap哈希表(无序)
存储单词计数信息,Stinrg是key值为单词,Integer是value为词频
map.put(k,v)给表赋值
map.get(key)获取key的value
---恢复内容结束---
 
                   
                   
                   
                   本文介绍了一个简单的Java程序,该程序能够从指定的文本文件中读取内容,并统计每个单词出现的频率。程序首先通过使用正则表达式来过滤掉非字母字符,然后将文件中的文本拆分为单词,并使用TreeMap进行统计和排序。最后输出出现频率最高的前十个单词及其出现次数。
本文介绍了一个简单的Java程序,该程序能够从指定的文本文件中读取内容,并统计每个单词出现的频率。程序首先通过使用正则表达式来过滤掉非字母字符,然后将文件中的文本拆分为单词,并使用TreeMap进行统计和排序。最后输出出现频率最高的前十个单词及其出现次数。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                  
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            