代码统计⼩程序—Java代码
  这⼏天在看正则表达式,看到尚学堂的正则表达式的专题,⾥⾯有个⽤正则表达式代码统计的⼩程序,⾃⼰练习了⼀下,现在记录下来。
⽤于统计⼀个⽂件夹内所有后缀名为.java的⽂件的所有的代码总量
st;
2
3import java.io.BufferedReader;
4import java.io.File;
5import java.io.FileNotFoundException;
6import java.io.FileReader;
7import java.io.IOException;
8
9public class CodeCounter {
10
11//有效程序⾏数
12public static int normalLines = 0;
13//空⽩⾏数
14public static int whiteLines = 0;
15//注释⾏数
16public static int commentLines = 0;
17
18
19public static void main(String [] args){
20        File f = new File("f:\\test");
21        File[] codeFile = f.listFiles();
22//循环
23for(File file : codeFile ){
24//提取后缀名为.java的⽂件
Name().matches(".*\\.java")){
26                parse(file);
27            }
28        }
29
30        System.out.println("normalLines " + normalLines);
31        System.out.println("whiteLines " + whiteLines);
32        System.out.println("commentLines " + commentLines);
33    }
34
35public static void parse(File file){
36        BufferedReader br = null;
37//判断此⾏是否为注释⾏
38boolean comment = false;
39
40try {
41            br = new BufferedReader(new FileReader(file));
42            String line = "";有趣的java小程序
43while((line = br.readLine()) != null){
44                line = im();
45if(line.matches("^[\\s&&[^\\n]]*$")){
46//空⾏
47                    whiteLines ++;
48                }else if(line.startsWith("/*")&& ! dsWith("*/")){
49//判断此⾏为"/*"开头的注释⾏
50                    commentLines ++ ;
51                    comment = true;
52                }else if(comment == true && !dsWith("*/")){
53//为多⾏注释中的⼀⾏(不是开头和结尾)
54                    commentLines ++ ;
55                }else if(comment == true && dsWith("*/")){
56//为多⾏注释的结束⾏
57                    commentLines ++ ;
58                    comment = false;
59                }else if(line.startsWith("//")){
60//单⾏注释⾏
61                    commentLines ++ ;
62                }else{
63//正常代码⾏
64                    normalLines ++;
65                }
66            }
67        } catch (FileNotFoundException e) {
68            e.printStackTrace();
69        }catch (IOException e) {
70            e.printStackTrace();
71        }finally{
72if(br != null){
73try {
74                    br.close();
75                    br = null;
76                } catch (IOException e) {
77                    e.printStackTrace();
78                }
79            }
80        }
81    }
82 }
83

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。