简体   繁体   English

计算java解析器中的“IfStmt”语句

[英]count the "IfStmt" statement in java parser

I am using javaparser to parse a java file , when I count the "If" statement it display the output as an incremental number such that Eg: if there are 3 "if" statements then it displays as [ 1 2 3 ]我正在使用 javaparser 来解析一个 java 文件,当我计算“If”语句时,它将输出显示为一个增量数字,例如:如果有 3 个“if”语句,那么它显示为 [1 2 3]

I want to get only the total number of "IF" statements.我只想获得“IF”语句的总数。 eg:[ 3].例如:[3]。

I don't want to get all the incrementing count This is my source code.我不想获得所有递增计数 这是我的源代码。

package org.javaparser.examples.chapter2;

public class VoidVisitorComplete {公共类 VoidVisitorComplete {

private static final String FILE_PATH = "src/main/java/org/javaparser/samples/prime.java";

public static void main(String[] args) throws Exception {

    CompilationUnit cu = StaticJavaParser.parse(new FileInputStream(FILE_PATH));
     

      VoidVisitor<Void> methodNameVisitor = new IfStmtVisitor();
      methodNameVisitor.visit(cu, null);             
}


private static class IfStmtVisitor extends VoidVisitorAdapter<Void> {
        
    
    int i=0 ;
    @Override
    public void visit(IfStmt n, Void arg) {
        //visit a if statement, add 1
        
        i++;

            System.out.println( getNumber() );
                  
    }
            
    public int getNumber() {
          
        return i;
    }
       
}
 

} }

You have to put the print statement after all the if statements have been counted.您必须在计算完所有if语句后放置 print 语句。

package org.javaparser.examples.chapter2;

public class VoidVisitorComplete {
    private static final String FILE_PATH = "src/main/java/org/javaparser/samples/prime.java";

    public static void main(String[] args) throws Exception {
        CompilationUnit cu = StaticJavaParser.parse(new FileInputStream(FILE_PATH));
        VoidVisitor<Void> methodNameVisitor = new IfStmtVisitor();
        methodNameVisitor.visit(cu, null);
        System.out.println(methodNameVisitor.getNumber());            
    }
}

private static class IfStmtVisitor extends VoidVisitorAdapter<Void> {
    int i = 0;

    @Override
    public void visit(IfStmt n, Void arg) {
        //visit a if statement, add 1
        i++;
    }
        
    public int getNumber() {
        return i;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM