zoukankan      html  css  js  c++  java
  • 结对项目

    目的与要求


    • 代码复审练习
    • 结对练习
    • 编写单元测试
    • 基于上一个结对项目的结果,读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率。
    • 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似)

    • 解释:
      • 选项 -f 表示打开某一文件
      • 选项 -w 表示统计其后单词在打开的文件中的频率

    详细内容


      1. 思路:

        基于上一个 结对项目 - 词频统计 的程序和结果,加入了输入的语句,用户可以通过输入所要查询的文件路径及文件名,可以查询到该文本中某一单词的出现频率。

      2. 分工:

        本次主要是小伙伴带着我开展对Java的学习。

    • 源代码
    import java.util.*;
    import java.util.Map.Entry;
    import java.io.*;
    
    public class WordCount3
    {
        public static void main(String[] args)  throws Exception  
        { 
            Map<String,Integer> map=new HashMap<String,Integer>();
            System.out.println("请输入所要查询的文件路径及文件名:");
            Scanner bs=new Scanner (System.in);
            String files=bs.nextLine();
                       
            File file = new File(files+".txt");
            FileReader reader = new FileReader(file);
            int fileLen = (int)file.length();
            char[] chars = new char[fileLen];
            reader.read(chars);
            String text = String.valueOf(chars);
    
            text = text.replaceAll("[\‘‘.“”,,]", "");  //删除字符串中的标点符号
            text = text.toLowerCase();//将文字全部转换为小写
            StringTokenizer take =  new StringTokenizer(text); //StringTokenizer是一个用来分隔String的应用类
            String word = new String();
            int i =0;
            while( take.hasMoreElements() )
            {
                
                word=take.nextToken() ;
                if(word.length()>=4)
                { 
                    Integer count = map.get(word);
                    if(count == null)
                    {
                        map.put(word,1);
                    }
                    else{
                    map.put(word,++count);
                    }
                }
                i++;
            }
            
            //排序
            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()));
                }
            } );
               
               System.out.println("请输入要查询的单词:");
               Scanner sc=new Scanner(System.in);
               String scword=sc.nextLine().toLowerCase();
               for(Map.Entry<String,Integer> entry : map.entrySet())
               {
                      if(entry.getKey().equalsIgnoreCase(scword)) 
                      {
                          System.out.println(scword+"在该文本中出现"+ entry.getValue()+"次
    已保存入指定目录文本中");
                          File outfile = new File("D:\Software\SorfwareTest\Result2.txt"); 
                          try  
                          { 
                              if (file.exists()) outfile.delete(); 
                              BufferedWriter bw = new BufferedWriter(new FileWriter(outfile)); 
                              StringBuffer out = new StringBuffer(); 
                               out.append(scword+"在该文本中出现"+ entry.getValue()+"次
    ");  
                               bw.write(out.toString()); 
                               bw.flush(); 
                               bw.close(); 
                               }  
                               catch (IOException e) 
                               { 
                                    e.printStackTrace(); 
                               }
                              }
                   else  continue;
               }
               
              
            
            //输出TXT
            
    
       }
      
      }
    • 运行结果

    打开文本文件

    • 小结

        本次的作业主要由小伙伴编辑,我学习并试着上手实际操作,  真·学海无涯

    • 源代码Github地址

    https://github.com/Jennyhyt/My-source-code/blob/master/TeamWork-WFS%E2%85%A1.cpp

  • 相关阅读:
    获取UltraWebTree指定节点的所有父节点内容
    OnClientClick
    ListControl控件经典用法
    DataTable添加列时容易被忽略的问题!
    利用数据库来填充UltraWebTree
    Web导出Word需要添加头文件
    程序中添加动态用户密码
    重构oninit,应用在模式窗口的方法
    防SQL注入
    获得connect string简单方法
  • 原文地址:https://www.cnblogs.com/hyating/p/5335221.html
Copyright © 2011-2022 走看看