Java 设置多个分隔符的语法?

Java 设置多个分隔符的语法?,java,parsing,java.util.scanner,delimiter,Java,Parsing,Java.util.scanner,Delimiter,我想设置一个分隔符,以便只获取java源代码中的单词 所以标点符号,比如()=空白等被忽略 我的目标是读取java文件的源代码,只检测变量名,而不检测变量类型。但标点符号有时也是变量名的一部分,所以我不得不把它们屏蔽掉 例如:公共静态void main(字符串[]args){ 这行应该只检测“main”和“args”并将它们存储起来,因为它们是变量名。但是我只需要知道如何设置分隔符来忽略其他内容 因此,基本上,分隔符应该包括以下内容: 空白;,()[]{}=”“这可以通过两个步骤完成: stri

我想设置一个分隔符,以便只获取java源代码中的单词

所以标点符号,比如()=空白等被忽略


我的目标是读取java文件的源代码,只检测变量名,而不检测变量类型。但标点符号有时也是变量名的一部分,所以我不得不把它们屏蔽掉

例如:公共静态void main(字符串[]args){

这行应该只检测“main”和“args”并将它们存储起来,因为它们是变量名。但是我只需要知道如何设置分隔符来忽略其他内容

因此,基本上,分隔符应该包括以下内容:
空白;,()[]{}=”“

这可以通过两个步骤完成:

string values= str.replaceAll("[(),;=<>]","|");  <-- replace all chars with pipe(|)
String[] array = values.split("\\|", -1);

string values=str.replaceAll(“[(),;=]”,“|”);您还必须处理字符串文本中的内容和一系列其他内容。实际上,您将编写Java解析器


如果你真的想这么做,我建议你看看。例如,有一些Java语法可供使用。

你想构建一个解析器。这样做不在中的问题范围之内,因为它太宽了。太宽了?怎么会这样?我只需要一个定界符,通过忽略涉及的其他Java标点符号来获取字符。我认为墨水分隔符将使用大约10种不同的东西。10太多了吗?因为您希望过滤掉诸如访问器、方法返回类型、对象类型等词-这意味着您不能用简单的字符串替换来完成。例如,您想过滤我们的单词
字符串
,但不想过滤掉变量
>myString
myStrings
,同时您还需要过滤掉
String[]
。这只是提到了一种可能的类型……目标是过滤掉java代码中的标点符号+任何空格。“我的目标是读取java文件的源代码,只检测变量名而不检测变量类型。”-你有一个短内存伙伴:)我不知道怎么做。他在问如何获取多个分隔符并将它们转换为单词列表。replaceAll()函数将所有分隔符合并为一个分隔符,然后split将剩下的内容提供给他。嘿,伙计们,我正在读取整个java源代码文件。因此,我必须遍历源代码中的所有内容。因此,对于从.next()获得的每个字符串方法,它需要只考虑单词,并确定它们是否是标识符。问题是标签<代码> java .UTI.SCALLUT/COD> >所以看起来它们要求扫描仪的分隔符。我不想替换任何东西。我希望每个扫描器。NEXT()值将字符串作为没有这些的单位:()){}所以我需要知道在.useDelimiter()方法中将这些设置为分隔符所需的语法。