Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java源文件中查找标识符_Java - Fatal编程技术网

在java源文件中查找标识符

在java源文件中查找标识符,java,Java,我的任务如下: 编写一个程序,读取Java源文件并生成文件中所有标识符的索引。对于每个标识符,打印其所在的所有行。调用.useDelimiter(“[^A-Za-z0-9\]+”)。然后,对next的每次调用都返回一个仅由字母、数字和下划线组成的字符串 我的计划是创建一个sample.java文件,并逐行读取它。我不确定标识符是什么意思,也不确定提到的useDelimiter方法是什么类。有人能让我走上正确的轨道吗?谢谢我会使用家庭作业标签,但它说它正在被删除 这是我到目前为止所拥有的。我可以让

我的任务如下:

编写一个程序,读取Java源文件并生成文件中所有标识符的索引。对于每个标识符,打印其所在的所有行。调用.useDelimiter(“[^A-Za-z0-9\]+”)。然后,对next的每次调用都返回一个仅由字母、数字和下划线组成的字符串

我的计划是创建一个sample.java文件,并逐行读取它。我不确定标识符是什么意思,也不确定提到的useDelimiter方法是什么类。有人能让我走上正确的轨道吗?谢谢我会使用家庭作业标签,但它说它正在被删除

这是我到目前为止所拥有的。我可以让它打印出文件中的所有标识符,但如何才能找出标识符所在的行号呢

    public static void main(String[] args) {
    System.out.println("Enter the path to your JAVA source file: ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String pathToFile = null;
    try {
        pathToFile = br.readLine();
        File f = new File(pathToFile);
        Scanner s = new Scanner(f);
        s.useDelimiter("[^A-Za-z0-9_]+");
        while (s.hasNext()) {                     
            String identifier = s.next();
            System.out.println(identifier);
        }
    } catch (IOException ioe) {
        System.out.println("Unable to locate file. Program will exit.\n"
                           + ioe.toString());
        System.exit(0);
    }
}
我建议使用:

  • 过滤评论
  • 筛选与[A-Za-z][A-Za-Z0-9]匹配的令牌*

此分配可以描述为“打印所有看起来像标识符的内容”,因为它所描述的算法将拾取注释掉的、包含在带引号字符串中的单词,等等。标识符,至少在Java意义上,是一种表示“以字母开头且仅由字母、数字和下划线组成的字符串”的奇特方式。实际上,您可以在Java标识符()中使用美元符号
$
,但如果您告诉教授,我怀疑教授不会相信您;-)标识符是编译器和语言编写器为用作变量、类型和类名称的字符串指定的名称。Java标识符与您发布的正则表达式匹配。有这样的方法。当我迭代文件中的行时,似乎也得到了空行,以及仅由{个字符组成的行。而且,当它说identifier时,我不确定如何找到它们。