• 课堂测验


    package 查重操作;
    
    import java.io.*;
    
    import java.util.*;
    
    import java.util.Map.Entry;
    
    public class find {
    
    	public static void main(String[] args) {
    
    		long t1 = System.currentTimeMillis();
    
    		String s;
    
    		String fileName1 = "D:/wlx.txt";
    
    		String fileName2 = "D:/result.txt";
    
    		try {
    
    			BufferedReader br = new BufferedReader(new FileReader(fileName1));
    
    			BufferedWriter bw = new BufferedWriter(new FileWriter(fileName2));
    
    			StringBuffer sb = new StringBuffer();
    
    			//将文件内容存入StringBuffer中
    
    			while((s = br.readLine()) != null) {
    
    				sb.append(s);
    
    			}
    
    			String str = sb.toString().toLowerCase();
    
    			//分隔字符串并存入数组
    
    			String[] elements = str.split("[^a-zA-Z0-9]+");
    
    			int count = 0;
    
    			Map<String, Integer> myTreeMap = new TreeMap<String, Integer>();
    
    			//遍历数组将其存入Map<String, Integer>中
    
    			for(int i = 0; i < elements.length; i++) {
    
    				if(myTreeMap.containsKey(elements[i])) {
    
    					count = myTreeMap.get(elements[i]);
    
    					myTreeMap.put(elements[i], count + 1);
    
    				}
    
    				else {
    
    					myTreeMap.put(elements[i], 1);
    
    				}
    
    			}                                          
    
    			System.out.println("单词统计的结果请见当前目录result.txt文件");
    
    			//将map.entrySet()转换成list
    
    			List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(myTreeMap.entrySet());
    
    			//通过比较器实现排序
    
    			Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
    
    				//降序排序
    
    				public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
    
    					return o2.getValue().compareTo(o1.getValue());
    
    				}
    
    			});
    
    			int num = 1;
    
    			//将结果写入文件
    
    			for(Map.Entry<String, Integer> map : list) {
    
    				if(num <= 10) {
    
    					bw.write("出现次数第" + num + "的单词为:" + map.getKey() + ",出现频率为" + map.getValue() + "次");
    
    					bw.newLine();
    
    					System.out.println(map.getKey() + ":" + map.getValue());
    
    					num++;
    
    				}
    
    				else break;
    
    			}
    
    			bw.write("耗时:" + (System.currentTimeMillis() - t1) + "ms");
    
    			br.close();
    
    			bw.close();
    
    			System.out.println("耗时:" + (System.currentTimeMillis() - t1) + "ms");
    
    		} catch (FileNotFoundException e) {
    
    			System.out.println("找不到指定文件!");
    
    		} catch (IOException e) {                                    
    
    			System.out.println("文件读取错误!");
    
    		}
    
    	}
    
    }
    

      思路:先在d盘创建txt文件,里面存储上英文文章,在自动创建一个txt文件保存结果。然后 分割字符串存入数组,进行排序,输出。

    感想:感觉有点难,在网上找了一些资料学习,借鉴了一些,

  • 相关阅读:
    ZT 二叉树先序,中序,后序遍历非递归实现
    二叉树的遍历(一)
    Z :彻底了解指针数组,数组指针以及函数指针 [复
    ZT 复杂的函数指针例子分析 2008
    D:hunting2014小题目字符串倒序
    本周实验的PSP0过程文档
    构建之法阅读笔记02
    第二周学习进度
    实现自动生成30道四则运算题目(2)
    实现自动生成30道四则运算题目
  • 原文地址:https://www.cnblogs.com/1061321925wu/p/9775421.html
Copyright © 2020-2023  润新知