编写程序,统计文本中每个单词出现的次数,然后将单词和对应次数输出1创建哈希表2创建文本输入流3读取文本单词,加到哈希表中4输出map数据遍历
时间: 2024-10-16 10:11:03 浏览: 17
统计单词在文章中出现频率
3星 · 编辑精心推荐
当你需要统计文本中每个单词的出现次数时,你可以使用Java编程语言中的HashMap(哈希表)来存储这些信息。以下是一个简单的步骤指南:
1. **创建哈希表** (HashMap):
使用`HashMap<String, Integer>`,其中字符串键存储单词,整数值存储对应的词频。这是因为Map的键值对类型匹配HashMap<String, Integer>,方便我们存储和检索。
```java
HashMap<String, Integer> wordCount = new HashMap<>();
```
2. **创建文本输入流** (InputStream):
首先,你需要读取文件或获取用户输入的文本。如果是从文件读取,你可以这样做:
```java
File file = new File("your_text_file.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
```
如果是从命令行或网络接收,你可以使用`Scanner`从标准输入 (`System.in`) 获取:
```java
Scanner scanner = new Scanner(System.in);
String textInput = scanner.nextLine();
```
3. **读取并增加词频**:
逐行读取文本,然后将每一行分割成单词,检查它们是否已经在哈希表中,如果存在则增加计数,否则添加新词:
```java
String[] words = textInput.split("\\s+"); // split by whitespace (spaces, tabs)
for (String word : words) {
if (!word.isEmpty()) { // ignore empty strings
wordCount.put(word, wordCount.getOrDefault(word, 0) + 1);
}
}
```
如果你使用的是文件流,记得关闭`BufferedReader`或`FileReader`。
4. **输出结果** (遍历哈希表):
最后,遍历哈希表并打印每个单词及其出现的次数:
```java
for (Map.Entry<String, Integer> entry : wordCount.entrySet()) {
System.out.println("Word: " + entry.getKey() + ", Frequency: " + entry.getValue());
}
```
记得处理完输入流之后关闭`BufferedReader`、`Scanner`等资源,保持良好的编程习惯。
阅读全文