zoukankan      html  css  js  c++  java
  • [Java] 正则表达式 02 EmailSpider 抓邮件, CodeCounter 统计程序有效代码行数

    EmailSpider.java

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
    public class EmailSpider {
    
        public static void main(String[] args) {
            try {
                BufferedReader br = new BufferedReader(new FileReader("D:\share\EmailHtm\email.htm"));
                String line = "";
                while((line=br.readLine()) != null) {
                    parse(line);
                }
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        private static void parse(String line) {
            Pattern p = Pattern.compile("[\w[.-]]+@[\w[.-]]+\.[\w]+");
            Matcher m = p.matcher(line);
            while(m.find()) {
                System.out.println(m.group());
            }
        }
    
    }

    CodeCounter.java

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class CodeCounter {
        
        static long normalLines = 0;
        static long commentLines = 0;
        static long whiteLines = 0;
        
        public static void main(String[] args) {
            File f = new File("D:\share\JavaProjects\CodeCounter\src");
            File[] codeFiles = f.listFiles();
            for(File child : codeFiles){
                if(child.getName().matches(".*\.java$")) {
                    parse(child);
                }
            }
            /*
             * 
             * */
             
            System.out.println("normalLines:" + normalLines);
            System.out.println("commentLines:" + commentLines);
            System.out.println("whiteLines:" + whiteLines);
            
        }
    
        private static void parse(File f) {
            BufferedReader br = null;
            boolean comment = false;
            try {
                br = new BufferedReader(new FileReader(f));
                String line = "";
                while((line = br.readLine()) != null) { // readLine() 已经吃掉了后面的换行符号
                    line = line.trim();
                    if(line.matches("^[\s&&[^\n]]*$")) {
                        whiteLines ++;
                    } else if (line.startsWith("/*") && !line.endsWith("*/")) {
                        commentLines ++;
                        comment = true; 
                    } else if (line.startsWith("/*") && line.endsWith("*/")) {
                        commentLines ++;
                    } else if (true == comment) {
                        commentLines ++;
                        if(line.endsWith("*/")) {
                            comment = false;
                        }
                    } else if (line.startsWith("//")) {
                        commentLines ++;
                    } else {
                        normalLines ++;
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if(br != null) {
                    try {
                        br.close();
                        br = null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    }
    

  • 相关阅读:
    jquery拖拽插件 tableDnD
    爱回收jd图标
    struts2框架学习笔记2:配置详解
    struts2框架学习笔记1:搭建测试
    hibernate框架学习笔记12:查询优化
    hibernate框架学习笔记11:Criteria查询详解
    hibernate框架学习笔记10:HQL查询详解
    hibernate框架学习笔记9:多对多关系案例
    hibernate框架学习笔记8:一对多关系案例
    hibernate框架学习笔记7:HQL查询、Criteria查询简介
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786822.html
Copyright © 2011-2022 走看看