统计Java程序中关键词的出现次数
时间: 2023-09-04 19:11:52 浏览: 81
可以通过以下步骤统计Java程序中关键词的出现次数:
1. 将Java程序读入内存,可以使用Java的File类和BufferedReader类实现。
2. 创建一个HashMap,将Java关键词作为key,初始值为0作为value。
3. 逐行读取Java程序,使用正则表达式或者其他方法匹配出Java关键词,并将对应的HashMap中的value加1。
4. 统计完成后,遍历HashMap输出每个关键词的出现次数。
以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
public class KeywordCounter {
public static void main(String[] args) {
File file = new File("test.java"); // Java程序文件路径
HashMap<String, Integer> keywordCountMap = new HashMap<>(); // 创建HashMap
String[] keywords = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while"}; // Java关键词列表
for (String keyword : keywords) {
keywordCountMap.put(keyword, 0); // 初始化HashMap
}
try {
BufferedReader reader = new BufferedReader(new FileReader(file)); // 创建BufferedReader
String line;
while ((line = reader.readLine()) != null) {
for (String keyword : keywords) {
String regex = "\\b" + keyword + "\\b"; // 构造正则表达式,匹配Java关键词
int count = line.split(regex, -1).length - 1; // 统计关键词出现次数
keywordCountMap.put(keyword, keywordCountMap.get(keyword) + count); // 更新HashMap
}
}
reader.close(); // 关闭BufferedReader
for (String keyword : keywords) {
System.out.println(keyword + ": " + keywordCountMap.get(keyword)); // 输出每个关键词的出现次数
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
阅读全文