【发布时间】:2015-03-26 03:57:15
【问题描述】:
我想设置一个分隔符,以便我只得到 java 源代码中的单词。
因此 ()、;=空格 等标点符号会被忽略。
我的目标是读取 java 文件的源代码并仅检测变量名称而不检测变量类型。但是标点符号有时也是变量名的一部分,所以我必须将它们屏蔽掉。
例如:public static void main(String[] args){
这一行应该只检测“main”和“args”并将它们存储起来,因为它们是变量名。但我只需要知道如何设置分隔符以忽略其他内容
所以基本上,分隔符应该包括以下内容: 空格;,()[]{}=""
【问题讨论】:
-
您正在寻找构建解析器。这样做不属于 SO 中的问题范围,因为它太宽泛了。
-
太宽泛了?怎么会这样?我所需要的只是通过忽略所涉及的其他 java 标点符号来获取字符的分隔符。我认为分隔符会使用大约 10 种不同的东西。 10 太多了吗?
-
因为您要过滤掉 单词,例如访问器、方法返回类型、对象类型等 - 这意味着您无法通过简单的字符串替换来完成。例如,您想过滤我们的单词
String,但您不想过滤掉变量myString或myStrings,同时您还想过滤掉String[]。这只是提到一种具有一些可能性的类型...... -
目标是过滤掉java代码中的标点符号+任何空格。
-
"我的目标是读取 java 文件的源代码,只检测变量名而不检测变量类型。" - 你的记忆力很差:)
标签: java parsing java.util.scanner delimiter