PackageRegxdemo;ImportJava.io.BufferedReader;ImportJava.io.File;Importjava.io.FileNotFoundException;ImportJava.io.FileReader;Importjava.io.IOException; Public classCountfile {/** * @paramargs*/ Static intCntcode=0, Cntnode=0, cntspace=0; Static BooleanFlagnode =false; Public Static voidMain (string[] args) {//TODO auto-generated Method StubBufferedReader br =NULL; Try{br=NewBufferedReader (NewFileReader ("Testfile.java")); String Line=NULL; while(line = Br.readline ())! =NULL) pattern (line); } Catch(FileNotFoundException e) {e.printstacktrace (); } Catch(IOException e) {//TODO auto-generated Catch blockE.printstacktrace (); } System.out.println ("Comment Line:" +Cntnode); System.out.println ("Blank line:" +cntspace); System.out.println ("Line of code:" +Cntcode); System.out.println ("HQ:" + (cntnode+cntspace+Cntcode)); } Private Static voidpattern (String line) {//TODO auto-generated Method StubString 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; }}
Java simple statistics. A valid line of code in a Java file, a blank line, a comment line