代码统计⼩程序—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小时内删除。
发表评论