zoukankan      html  css  js  c++  java
  • 第二周博客作业

    本次作业要求参见: 20180918-1 词频统计 [https://edu.cnblogs.com/campus/nenu/2018fall/homework/2126

    本次作业代码地址:https://coding.net/u/FanF/p/wf/git

    1.控制台输入英文文本,读取文本内容。

    String content = "";
    String con = null;
    while(content!=null){    
    content = bufferedReader.readLine();    
    if(content == null){        
                break;
                }
        if(content.equals("")){    
                continue;
            }
            count += getWord(content, map);    
    
            System.out.println("该篇文章总字数为:"+count+"个");

      检测单词中是否包含特殊字符,若有,则用""空串替代。

    public static String checkIsHaveSpecial(String word) {
            String[] special= {",","(",")","-","*",""","?",".","—","=","+","","!","/","1","2","3"
                    ,"4","5","6","7","8","9","0",":","$","@"," ","(",")"};    //特殊字符集
            for(int i = 0;i<special.length;i++) {
                if(word.contains(special[i])) {
                    word = word.replace(special[i],"");
                }
            }
            return word;
     public static void sortMap(Map<String, Integer> map) {
            List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());
            
            //按照自定义的比较器对list进行排序,这里是对value值进行降序排序
            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 i = 1;
            System.out.println("排名前十的单词分别为:");
            for (Entry<String, Integer> e: list) {
                if(i<=10) {
                    System.out.println("第"+i+"名:"+e.getKey()+" 数量:"+e.getValue());
                    i++;
                }
                else
                    break;
            }
        }

    2.控制台输入英文文本,统计单词和出现次数。调用getWord方法获取字母并添加到map中,并返回每一行的单词数,并相加。

    public static void main(String[] args) throws Exception {
            
            Scanner sc = new Scanner(System.in);
    
            String content = "";
            
            String con = null;
            con = sc.nextLine();
            Map map = new TreeMap<String,Integer>();
            int count = 0;    
            count = getWord(con, map);
            
    System.out.println(
    "该篇文章总字数为:"+count+"个"); sortMap(map); }

    3.选择文件,输入文件路径,读取文件。

        public static void main(String[] args) throws Exception {
        
          String f;
          System.out.println("请输入文件路径:");
          Scanner sc = new Scanner(System.in);
          f = sc.nextLine();
          File file = new File(f);

    4.从控制台输入英文单篇作品。

        public static void main(String[] args) throws Exception {
            File file = new File("C:/book.txt");
            BufferedReader bufferedReader = new BufferedReader(new FileReader(file),1024*1024*1);
            
            String content = "";
            
            Map map = new TreeMap<String,Integer>();
            
            int count = 0;    
            
            while(content!=null){    
                content = bufferedReader.readLine();    
                if(content == null){    
                    break;
                }
                if(content.equals("")){
                    continue;
                }
                
                count += getWord(content, map);    
            }
            
            System.out.println("该篇文章总字数为:"+count+"个");
            sortMap(map);
        }

    程序做得少,框架来的很慢,在执行中有多次错误,很多小问题,花费了很多时间才修正,例如在里面查找文件夹目录里的小说时,没有注意txt的后缀问题,后来一点点排出才发现。

    1.测试功能的实现

    此项目PSP

  • 相关阅读:
    智能指针的理解
    [转] weak_ptr解决shared_ptr环状引用所引起的内存泄漏
    模板实现多态的功能
    Protobuf的自动反射消息类型的方法
    [转] C++临时变量的生命周期
    C++转换函数
    [转] boost------ref的使用(Boost程序库完全开发指南)读书笔记
    c++回调编程本质
    New 和 GetMem 的不同之处
    Delphi New,Getmem,ReallocMem联系与区别
  • 原文地址:https://www.cnblogs.com/fjingxuan/p/9696884.html
Copyright © 2011-2022 走看看