当前位置:   article > 正文

编写一个程序,统计一个文本文件所包含的不同单词的个数,并将结果保存在另一个文件中。_统计一个源文本文件中每个单词出现的次数,并将结果写入另一个目标文件。

统计一个源文本文件中每个单词出现的次数,并将结果写入另一个目标文件。

题目:编写一个程序,统计一个文本文件所包含的不同单词的个数,并将结果保存在另一个文件中。输出文件的格式为:每个单词占用一行,其内容包括单词本身及其出现的次数;各单词之间要按照从小到大的顺序排列。

  1. import java.io.*;
  2. import java.util.*;
  3. /**
  4. * @author LL Leung
  5. */
  6. public class WordCount {
  7. static ArrayList<String> wordList = new ArrayList<String>();
  8. public static void main(String[] args)throws FileNotFoundException{
  9. //读入"word.txt"内容并存进字符串中
  10. Scanner input = new Scanner(new File("word.txt"));
  11. String s = input.nextLine();
  12. //分割字符串并存进字符串数组中
  13. String [] strArr = s.split(" ");
  14. HashMap<String, Integer> hashMap = new HashMap<String,Integer>();
  15. //遍历字符串数组
  16. for(String word:strArr){
  17. //求出不同单词个数
  18. if(!wordList.contains(word.toLowerCase())){
  19. wordList.add(word.toLowerCase());
  20. }
  21. //求出每一个单词出现的个数
  22. Integer currentCount = hashMap.get(word);
  23. if(currentCount == null){
  24. currentCount = 0;
  25. }
  26. hashMap.put(word,++currentCount);
  27. }
  28. System.out.println("不同单词个数为:" + wordList.size());
  29. //创建新文件"newDemo2.txt"并将"排序单词出现次数"等内容存进新文件中
  30. try{
  31. FileOutputStream fos = new FileOutputStream("newDemo.txt",false);
  32. fos.write(sort(hashMap).getBytes());
  33. //关闭文件流
  34. fos.close();
  35. }catch(IOException ex){
  36. System.out.println("无法打开文件!");
  37. }
  38. }
  39. /**
  40. * 将"hashMap"中的“value”值进行排序
  41. * @param hashMap
  42. * @return
  43. */
  44. public static String sort(Map<String,Integer> hashMap){
  45. StringBuilder str = new StringBuilder("不同单词个数为:" + wordList.size() + "\r\n");
  46. List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(hashMap.entrySet());
  47. Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
  48. @Override
  49. public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
  50. if (o1.getValue() < o2.getValue()) {
  51. return -1;
  52. } else if (o1.getValue() > o2.getValue()) {
  53. return 1;
  54. }
  55. return 0;
  56. }
  57. });
  58. //打印信息
  59. for (Map.Entry<String, Integer> id : list) {
  60. str.append("单词:").append(id.getKey()).append(" 出现次数:").append(id.getValue()).append("\r\n");
  61. }
  62. return str.toString();
  63. }
  64. }

原文本"word.txt"内容:

程序运行成功后创建的"newDemo.txt"文本:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/331365
推荐阅读
相关标签
  

闽ICP备14008679号