java - 计算多个方法的行数,但返回单独的值而不是所有值的总和

标签 java counter bufferedreader lines-of-code

我将详细阐述我的问题,因为我很难以正确的方式标记问题。

我像这样标记我的方法:

 /*Start*/
  public void contadorDeLineas(File file)throws IOException{
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;
/*Finish*/

我有几个这样标记的方法,但我想单独对它们进行计数,但我编写的代码对方法内的行进行计数,从 public 开始到“Finish”结束。但就目前而言,我编写的代码对方法内的所有行进行计数并返回所有行的总和。我想要做的是读取第一个 block 返回该值并继续搜索下一个代码块。 这是我写的代码

public void LinesMethods(File file)throws IOException{
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
int lines_inside = 0;

while((line = br.readLine())!=null){
  if(line.startsWith("/*St")){
    do{
      line = br.readLine();
      line = line.trim();
      System.out.println(line);
      if(!(line.equals("") || line.startsWith("/*"))){
        lines_inside++;
      }
    }while(!line.startsWith("/*Fi"));
  }
}
br.close();
System.out.println("Found: " + lines_inside);
}

这是我的代码在控制台中显示的示例

/*Start*/
public void LineMethods(File file)throws IOException{
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
/*Finish*/
/*Start*/
public static void main(String[] args)throws IOException{
program2 test = new program2();
File root = new File(args[0]);
test.LOC(root);
System.out.println("Found: " + test.lines);
System.out.println("Other type of lines: " + test.toDo);
}
}
/*Finish*/
Block comments lines: 11

相反,我正在寻找一个结果,例如第一个打印结果显示数字 3,然后显示数字 8。 任何指导将不胜感激。

最佳答案

试试这个

    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
        boolean inside = false;
        int count = 0;
        String line;
        while ((line = br.readLine()) != null) {
            if (line.contains("/*Start*/")) {
                inside = true;
                count = 0;
            } else if (line.contains("/*Finish*/")) {
                System.out.println("Found: " + count);
                inside = false;
            } else if (inside) {
                ++count;
            }
        }
        if (inside && count > 0)
            System.out.println("Found: " + count);
    }

关于java - 计算多个方法的行数,但返回单独的值而不是所有值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402406/

相关文章:

android - 如何在没有 View 的情况下创建计时器?

java - 从 hashmap 写入 txt 文件

java - telnet 关闭时 BufferedReader 或 Socket 不会引发异常

java:警告:迭代器是原始类型

java - 链接 JSON 文件和 java 文件

Mysql 查询为每个空记录将计数器或标记加一..?

java - 如何从 ifs 文本文件中提取 2D double 组 (Java)

java - 如何检查输入字段中的文本

java - 递归地打印带有适当逗号的数字

object - Lisp:基本的面向对象计数器