问题描述:
统计java代码中的有效代码行数,空行,和注释行数,使用java语言实现
下面是我的代码,仅供参考(正常的代码应该都能统计出来的)
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Home1 {
public static void heBing(String path) throws IOException {
Reader r=new FileReader(path);
BufferedReader br=new BufferedReader(r);
Boolean flag=true;
int konghang=0;
int zhushi=0;
int daima=0;
String string="";
while((string=br.readLine())!=null){
string =string.trim();//去除前后的空行
if(string.equals("")){ //统计空行的行数
konghang++;
}else if(string.startsWith("/*")&&string.endsWith("*/")){ //统计/* */在同一行中
zhushi++;
}else if(string.startsWith("//")){ //统计// 的行数
zhushi++;
}else if(string.startsWith("/*")&&flag){ // 统计/* 的行数,并改变flag
zhushi++;
flag=!flag;
}else if(string.endsWith("*/")&&!flag){ // 统计 */ 的行数,并改变flag的值
zhushi++;
flag=!flag;
}else if(!flag){ // 统计/* */ 中间的行数,不包括/* */
zhushi++;
}else { //统计有效代码数
daima++;
}
}
br.close();
r.close();
System.out.println("空行的行数:"+konghang);
System.out.println("注释的行数:"+zhushi);
System.out.println("代码的行数:"+daima);
}
public static void main(String[] args) throws IOException {
String string="F:/Line.txt";
heBing(string);
}
}