gpt4 book ai didi

java - 需要一些关于如何在 Java 中实现这一点的想法(解析字符串)

转载 作者:行者123 更新时间:2023-12-01 19:23:18 26 4
gpt4 key购买 nike

抱歉,我想不出更好的标题,但感谢您的阅读!

我的最终目标是读取 .java 文件,解析它,并提取每个标识符。然后将它们全部存储在一个列表中。有两个前提条件:文件中没有注释,所有标识符仅由字母组成。

现在我可以读取该文件,按空格解析它,并将所有内容存储在列表中。如果列表中的任何内容是 java 保留字,则会将其删除。另外,我删除了任何未附加到任何东西的松散符号(括号和算术符号)。

现在我只剩下一堆奇怪的字符串,但至少它们里面没有空格。我知道我将不得不用 .分隔符以便提取像 System.out.print 这样的标识符,但是像这个例子这样的字符串呢:

Logger.getLogger(MyHash.class.getName()).log(Level.SEVERE,

重新解析后。我将留下更多疯狂的字符串,例如:

getLogger(MyHash)

getName())

日志(级别

严重,

我怎样才能在保留所有垃圾的同时提取所有标识符?只是继续重新解析java代码中可能存在的每个符号?这看起来相当蹩脚且耗时。我什至不确定它是否会完全起作用。那么,您能建议一种更好的方法吗?

最佳答案

除了破解您自己的解析器之外,您还可以使用多种解决方案:

  • 使用现有解析器,例如 this one .
  • 使用BCEL读取字节码,其中包括所有字段和变量。
  • 使用 annotation processing 侵入编译器或运行时或mirrors - 我不确定您是否可以通过这种方式找到所有标识符,但可以肯定字段和参数。

关于java - 需要一些关于如何在 Java 中实现这一点的想法(解析字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com