码迷,mamicode.com
首页 > 其他好文 > 详细

课堂测验

时间:2018-10-11 22:40:39      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:array   自动   实现   buffered   null   ons   ret   app   edr   

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文件保存结果。然后 分割字符串存入数组,进行排序,输出。

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

课堂测验

标签:array   自动   实现   buffered   null   ons   ret   app   edr   

原文地址:https://www.cnblogs.com/1061321925wu/p/9775421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!