zoukankan      html  css  js  c++  java
  • 第二次作业

    |这个作业属于哪个课程|https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879|
    |姓名学号 |文加宁 20188493 |
    |这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879|
    |这个作业的目标|<初步了解并掌握Gitee的使用并利用编程解决问题>|
    |其他参考文献|《构建之法》 |

    Github的项目地址:https://gitee.com/wen-jianing/dashboard/codes

    PSP表格:

    实验需要实现的基本需求
    统计文件的字符数(对应输出第一行)。
    统计文件的单词总数(对应输出第二行),单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
    统计文件的有效行数(对应输出第三行):任何包含非空白字符的行,都需要统计。
    统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个

    实验的解题思路与分析
    统计Ascii码,汉字不考虑汉字,
    统计文件的单词总数,单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
    英文字母: A-Z,a-z
    字母数字符号:A-Z, a-z,0-9
    统计文件的有效行数:任何包含非空白字符的行,都需要统计。
    统计文件中各单词的出现次数,最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。
    按照字典序输出到文件result.txt

    Git截图:

    1. getcharNum()

    2. getwordNum()
    `for(int i = 0;i<everyword.length;i++)

        {
    
            
    
            if(everyword[i].length()<4)
    
            {
    
                continue;
    
            }
    
            else //符合长度的单词
    
            {
    
                int flag=0;
    
                char[] ch = everyword[i].toCharArray();//每一个everyword数组内容拆分成字符数组
    
                for(int j = 0;j<4;j++)
    
                {
    
                    if(!(ch[j]>= 'A' && ch[j]<= 'Z' || ch[j]>= 'a' && ch[j]<= 'z'))
    
                    {
    
                        flag=1;
    
                    }
    
                }
    
                if(flag ==0 )
    
                {
    
                    wordNum++;
    
                }
    
            }
    
        }
    

    **3. getlineNum()**public int getlineNum()

        {
    
            String[] line = str.split("
    |
    ");//换行('
    ')、回车('
    ')
    
            for(int i=0; i<line.length;i++)
    
            {
    
                if(line[i].trim().isEmpty())
    
                {
    
                    continue;
    
                }
    
                else
    
                {
    
                    lineNum++;
    
                }
    
            }
    
            return lineNum;
    
        }
    

    public List<Map.Entry<String, Integer>> getwordFreq()
    {
    wordFreq = new HashMap<String,Integer>();

        String s = str;
        
        s = s.replace('
    ',' ');
        s = s.replace('
    ',' ');
        s = s.replace('	',' ');
        
        String[] everyword = s.split(" ");//用空格作为分割
        for(int i = 0;i<everyword.length;i++)
        {
            
            if(everyword[i].length()<4)
            {
                continue;
            }
            else 
            {
                int flag=0;
                char[] ch = everyword[i].toCharArray();
                for(int j = 0;j<4;j++)
                {
                    if(!(ch[j]>= 'A' && ch[j]<= 'Z' || ch[j]>= 'a' && ch[j]<= 'z'))//开头四位不全为字母
                    {
                        flag=1;
                    }
                }
                if(flag ==0 )//符合一个单词的标准
                {
                    String key = everyword[i].trim().toLowerCase();//统一转换成小写
                    if (wordFreq.containsKey(key)){
                        int n=Integer.parseInt(wordFreq.get(key).toString())+1;
                        wordFreq.put(key,n);
                    }else {
                        wordFreq.put(key,1);
                    }
                }
            }
        }
        
        
        List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(wordFreq.entrySet());  
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
    
            @Override//降序排序  
            public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
                // TODO Auto-generated method stub
                if(o1.getValue() == o2.getValue())
                {
                    return o1.getKey().compareTo(o2.getKey());
                }
                return o2.getValue().compareTo(o1.getValue()); 
            }  
        });  
        return list;
       /* for (Entry<String, Integer> mapping : list) {  //输出
            System.out.println(mapping.getKey() + ":" + mapping.getValue());  
        }  */
    }
    

    `
    运行截图:

    心得体会
    本次作业涉及了如何设计内裤翻阅资料以及代码编程,比如命令接收参数解析字符串等,通过本次作业认识到自己的不足,但希望能够继续加油!

  • 相关阅读:
    python spark 求解最大 最小 平均
    python spark 求解最大 最小 平均 中位数
    我的spark python 决策树实例
    python spark 随机森林入门demo
    python spark 决策树 入门demo
    php 使用curl发起https请求
    awk调用shell命令的两种方法:system与print
    js 中 setTimeout()的用法
    Linux里AWK中split函数的用法
    awk substr()函数
  • 原文地址:https://www.cnblogs.com/Vennien/p/14612538.html
Copyright © 2011-2022 走看看