创建一个类Exc3,实现:利用java的输入流,读取Exc3.java文件的内容;提取并在命令行输出该文件中关键字‘统计当前Exc3.java中关键字出现次数,并输出出现频率最多的关键字及出现次数
时间: 2023-05-20 08:01:53 浏览: 124
以下是Exc3类的代码实现:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Exc3 {
public static void main(String[] args) {
String fileName = "Exc3.java";
Map<String, Integer> keywordMap = new HashMap<>();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
String[] words = line.split("\\W+");
for (String word : words) {
if (isKeyword(word)) {
keywordMap.put(word, keywordMap.getOrDefault(word, 0) + 1);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
int maxCount = 0;
String maxKeyword = "";
for (Map.Entry<String, Integer> entry : keywordMap.entrySet()) {
if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
maxKeyword = entry.getKey();
}
}
System.out.println("出现频率最高的关键字是:" + maxKeyword + ",出现次数为:" + maxCount);
}
private static boolean isKeyword(String word) {
String[] keywords = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const",
"continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for",
"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"};
for (String keyword : keywords) {
if (keyword.equals(word)) {
return true;
}
}
return false;
}
}
这个类利用Java的输入流读取Exc3.java文件的内容,并提取其中的关键字。然后,它统计当前Exc3.java中关键字出现次数,并输出出现频率最多的关键字及出现次数。