网上见到好些
代码行数统计的软件及代码
但大多不是java实现的
又见过一道类似的面试题目
故有此想法
请大家多多发表意见建议哈
给定多个源程序文件,统计每个源程序的物理行数、逻辑行数(非注释行)和注释行数;以及所有文件上述三种统计值的总计值。如果一行内有超过一处行内注释,则本行可以同时算作逻辑行和注释行。其中输出结果可以用.txt或者.html文件。
对于不同的代码行进行区分;区分超过一行的注释行,并作为逻辑行和注释行来统计;对于多个文件同时进行统计,需要利用多线程。大家多指教哈。
谢啦
~!!~
代码行数统计的软件及代码
但大多不是java实现的
又见过一道类似的面试题目
故有此想法
请大家多多发表意见建议哈
给定多个源程序文件,统计每个源程序的物理行数、逻辑行数(非注释行)和注释行数;以及所有文件上述三种统计值的总计值。如果一行内有超过一处行内注释,则本行可以同时算作逻辑行和注释行。其中输出结果可以用.txt或者.html文件。
对于不同的代码行进行区分;区分超过一行的注释行,并作为逻辑行和注释行来统计;对于多个文件同时进行统计,需要利用多线程。大家多指教哈。
谢啦
~!!~
private int comnum ;
private int allnum ;
private int codenum;
public LineCount(String path){
init(path)
} private void init(String path){
LineNumberReader reader = new LineNubmerReader(new InputStreamReader(new LileInputStream(path)));
while(!EOF){
String line = reader.readLine();
if( line != null ) allnum++;
if( line.startsWith("//") || line.startsWith("/*) || line.starsWith("*"))
comnum++;
else
codenum++;
}
}
} public int getCodeNum(){
return codenum;
} public int getTotalNum(){
return allnum;
} public int getCommetNum(){
return comnum;
}
}
}我觉得使用LineNumberReader应该可以做,上面给出了对一个文件进行分析后得到行数的class,但不知道该如何确定一个文件的结束??暂时用EOF代替了,欢迎指点!
String text;
while ((text = br.readLine()) != null) {
do something....
}这个应该可以的,刚才我也试着编了一下,基本功能差不多了,不过确实很麻烦,要判定的地方很多,比如:
BufferedReader br = new BufferedReader(new FileReader("src\\learn\\Test.java"));
String[] line = s.split("\\");
等等,仔细想想这样的语句不少,还有没想起来的,确实够麻烦
楼上几位都说得很好啊
实现起来是麻烦
特别是对于注是对于注释本身就有好多种
算法实现始不难但却是麻烦哈
不过对于多线程的设计
要同时统计多个文件
倒是没什么具体头绪
难道要这个统计行数的类在 run()中产生多个对象来实现
to:cathy97(男人练瑜伽好处多)
EOF判定文件的结束
当文件读完试图再读的时候抛出异常
倒也不错哈
~!!~