
开发语言:Java
开发工具:UltraEdit
小伙伴博客:http://www.cnblogs.com/hyating/
github地址:https://github.com/JUNYU217/2016-03-08
|| 为月末了,网费欠了...很抱歉的拖了那么久的作业 QAQ ||
------个人小结------
通过这次作业,我学习了文件流的使用,也感谢小伙伴的帮忙,给了我构思的框架
------作业要求------
基于作业3的结果,读取一个较小的文本文件,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件。 (第一阶段初稿完成该要求)
- 首先按照频率由高到低排序
- 频率一样的词, 按照字典顺序排序
- 详情戳这!
------程序编写------
这次的作用基于第三次作业上有所改动,具体方法在代码中体现
首先感谢我的舍友苗中锋提供给我的排序算法,我一直纠结了好久,通过键排序,通过值排序一直达不到排序的要求
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort( list, new Comparator<Map.Entry<String, Integer>>()
{
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2)
{
if(o1.getValue()<o2.getValue())
return 1;
else if(o1.getValue()>o2.getValue())
return -1;
else
return(o1.getKey().compareTo(o2.getKey()));
}
} );
排序后,通过java中 io 提供的方法完成了输出
File outfile = new File("D:\\Software\\SorfwareTest\\Result.txt");
try
{
if (file.exists()) outfile.delete();
BufferedWriter bw = new BufferedWriter(new FileWriter(outfile));
StringBuffer out = new StringBuffer();
for(Map.Entry<String,Integer> mapping:list)
{
out.append(mapping.getKey()+":"+mapping.getValue()+"\r\n");
}
bw.write(out.toString());
bw.flush();
bw.close();
}
catch (IOException e)
{
e.printStackTrace();
});
------程序运行------
未编译前
在编译和运行后产生了 Result.txt
打开Result.txt,结果是正确的~