我有以下任务:
编写一个程序,读取 Java 源文件并生成文件中所有标识符的索引。对于每个标识符,打印它出现的所有行。调用 in.useDelimiter("[^A-Za-z0-9_]+")。然后每次调用 next 返回一个仅由字母、数字和下划线组成的字符串。
我的计划是创建一个示例 .java 文件,并逐行读取它。我不确定标识符是什么意思,或者哪个类提到了 useDelimiter 方法。谁能让我走上正轨?谢谢。我会使用 homework 标签,但它说它正在被删除。
这是我到目前为止所拥有的。我可以让它打印出文件中的所有标识符,但是我怎样才能找出标识符所在的行号呢?
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);
}
}