第一个作业(《C#程序设计》or《Java程序设计》):源代码计算器

来源:互联网 发布:伊苏里亚王朝 知乎 编辑:程序博客网 时间:2024/06/02 07:57
//给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数import java.io.BufferedReader;  import java.io.File;  import java.io.FileNotFoundException;  import java.io.FileReader;  import java.io.IOException;  public class StaticsCodeingLine {      private static int whiteLines = 0;  //定义空白行数    private static int commentLines = 0;  //定义注释行数    private static int normalLines = 0;  //定义有效代码行数     public static void main(String[] args) {          File f = new File("E:\\workplace\\first\\src\\iotest\\StaticsCodeingLine.java");           sumCode(f);      }      private static void sumCode(File file) {           BufferedReader br = null;           boolean comment = false;           try {               br = new BufferedReader(new FileReader(file));               String line = "";               try {                   while ((line = br.readLine()) != null) {                       line = line.trim();                       if (line.matches("^[\\s&&[^\\n]]*$")) {                           whiteLines++;                       } else if (line.startsWith("/*") && !line.endsWith("*/")) {                           commentLines++;                           comment = true;                       } else if (true == comment) {                           commentLines++;                           if (line.endsWith("*/")) {                               comment = false;                           }                       } else if (line.startsWith("//")) {                               commentLines++;                       } else {                           normalLines++;                       }                   }               } catch (IOException e) {                       e.printStackTrace();               }           } catch (FileNotFoundException e) {                   e.printStackTrace();           } finally {               if (br != null) {                   try {                       System.out.println("空行数:"+whiteLines);                      System.out.println("注释行数:"+commentLines);                      System.out.println("代码行数:"+normalLines);                      br.close();                       br = null;                   } catch (IOException e){                       e.printStackTrace();                   }               }           }       }  }  

0 0
原创粉丝点击