zoukankan      html  css  js  c++  java
  • java简单统计.java文件中的有效代码行,空行,注释行

    package regxdemo;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class CountFile {
    
        /**
         * @param args
         */
        static int cntCode=0, cntNode=0, cntSpace=0;
        static boolean flagNode = false;
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader("TestFile.java"));
                String line=null;
                while((line = br.readLine()) != null)
                    pattern(line);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            System.out.println("注释行: " + cntNode);
            System.out.println("空行: " + cntSpace);
            System.out.println("代码行: " + cntCode);
            System.out.println("总行: " + (cntNode+cntSpace+cntCode));
            
        }
    
        private static void pattern(String line) {
            // TODO Auto-generated method stub
            String regxNodeBegin = "\s*/\*.*";
            String regxNodeEnd = ".*\*/\s*";
            String regx = "//.*";
            String regxSpace = "\s*";
            if(line.matches(regxNodeBegin) && line.matches(regxNodeEnd)){
                ++cntNode;
                return ;
            }
            if(line.matches(regxNodeBegin)){
                ++cntNode;
                flagNode = true;
            } else if(line.matches(regxNodeEnd)){
                ++cntNode;
                flagNode = false;
            } else if(line.matches(regxSpace))
                 ++cntSpace;
            else if(line.matches(regx))
                 ++cntNode;
            else if(flagNode)
                 ++cntNode;
            else ++cntCode;
        }
    
    }
  • 相关阅读:
    【JavaWeb】DbUtils入门之QueryRunner
    详解 hibernate mapping配置
    hibernate-mapping的各种属性配置
    Hibernate入门这一篇就够了
    记一次Sql优化过程
    ExtJs双ActionResult共用同一Js文件ID冲突解决方案
    ExtJs批量更新
    枚举初使用
    Dapper连接Oracle
    读取Excel任务列表并显示在Outlook日历上
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/4072518.html
Copyright © 2011-2022 走看看