词频计算器 选择一个文本文件in.txt,用户输入一个单词,计算该文件中这个单词出现的次数,并显示到界面上。 比如,in.txt文件中内容为“The emergence of semantic sensor Web provides a way for realizing data interoperability, information sharing, and knowledge fusion among the different sensor systems in the Internet of Things.”用户输入“of”,这时界面显示2。Java答辩讲解
时间: 2024-02-22 13:55:19 浏览: 93
在 中实现这个词频计算器可以分为以下几步:
1. 提示用户输入文件名和单词。
2. 读取文件内容并将其转换为一个字符串。
3. 将字符串中的标点符号和换行符替换为空格,以便将其分割为单词。
4. 使用 split() 函数将字符串分割为单词数组。
5. 遍历单词数组,并使用 equals() 函数判断每个单词是否与用户输入的单词相同,如果相同则计数器加一。
6. 将计算结果输出到界面上。
以下是一份可能的 Java 代码实现:
```
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class WordCounter {
public static void main(String[] args) {
String filename = "";
String word = "";
int count = 0;
// 提示用户输入文件名和单词
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入文件名: ");
filename = reader.readLine();
System.out.print("请输入要计算的单词: ");
word = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
// 读取文件内容并将其转换为一个字符串
StringBuilder sb = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append(" ");
}
} catch (IOException e) {
e.printStackTrace();
}
String content = sb.toString();
// 将标点符号和换行符替换为空格
content = content.replace("\n", " ");
content = content.replace(",", " ");
content = content.replace(".", " ");
content = content.replace(";", " ");
content = content.replace(":", " ");
content = content.replace("?", " ");
content = content.replace("!", " ");
// 使用 split() 函数将字符串分割为单词数组
String[] words = content.split("\\s+");
// 遍历单词数组计算单词出现次数
for (String w : words) {
if (w.equals(word)) {
count++;
}
}
System.out.printf("单词 %s 在文件 %s 中出现了 %d 次\n", word, filename, count);
}
}
```
这个程序首先提示用户输入文件名和单词,然后使用 BufferedReader 和 FileReader 类读取文件内容并将其转换为字符串。接下来,程序将字符串中的标点符号和换行符替换为空格,并使用 split() 函数将字符串分割为单词数组。最后,程序遍历单词数组并计算单词出现次数,将结果输出到界面上。
阅读全文