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;
        }
    
    }
  • 相关阅读:
    GRE协议基础配置
    OSPFv3基础配置
    初级作业2
    缺省静态路由发布进OSPF
    不同进程OSPF路由相互通信
    OSI与TCP/IP
    华为AAA认证详解
    OSPF与静态路由
    [转]那些著名或非著名的iOS面试题(下)
    [转]那些著名或非著名的iOS面试题(中)
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/4072518.html
Copyright © 2011-2022 走看看