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;
        }
    
    }
  • 相关阅读:
    C语言学习笔记<九>
    C语言学习笔记<六>
    C语言学习笔记<八>
    C语言学习代码〈五〉
    C语言学习笔记<七>
    红队笔记横向移动总结
    pikachu通关
    java线程监控
    项目空负载服务器使用cpu过高
    @NotBlank注解使用不生效的解决办法
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/4072518.html
Copyright © 2011-2022 走看看