您的位置:首页 > 编程语言 > Java开发

java简单统计.java文件中的有效代码行,空行,注释行

2014-11-03 23:37 387 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: