查找.java文件中的条件



我尝试制作方法,该方法将在.java文件中找到所有条件(我认为该文件仅在说明时才包含正确的文件)。它应该计算所有"如果",而不是用评论或拖动的字符串来计算的。我试图用StringTokenizer解决这个问题,但是我不知道"//"符号和字符串之后的线条如何使"。

public int getIfCount()
{
    int counter = 0;
    String t = "";
    try 
    {
        FileReader file = new FileReader(path);
        StringBuffer sb = new StringBuffer();
        int tmp;
        while ((tmp = file.read()) != -1)
        {
            sb.append((char)tmp);
        }
        t = sb.toString();
        StringTokenizer stk = new StringTokenizer(t);
        String token;

        while (stk.hasMoreTokens())
        {
            token = stk.nextToken();
             if (token.contains("/*"))
            {
                while (stk.hasMoreTokens())
                {
                    if (stk.nextToken().contains("*/"))
                        break;
                }
            }
            else if (token.contains("//"))
            {
                while (stk.hasMoreTokens() && stk.nextToken() != "n")
                {
                    if (stk.nextToken().endsWith("n"))
                        break;
                }
            }
            else if (token.contains("""))
            {
                if (!token.endsWith("""))
                    while (stk.hasMoreTokens())
                    {
                        if(stk.nextToken().contains("""))
                            break;
                    }
            }
            else if (token.startsWith("if"))
                counter++;
        }
    } 
    catch (FileNotFoundException e) 
    {
        System.out.println("This file does not exist!");
    } 
    catch (IOException e) 
    {
        System.out.println("ERROR");
    }
    return counter;
}

无需自己实施。您正在做的是实施解析器的基础知识。尽管对解析时正在发生的事情有所了解是一件好事,但我建议使用https://github.com/javaparser/javaparser等库。玩得开心。

相关内容

  • 没有找到相关文章

最新更新