编写一个程序,要求用户输入一段英文文本,统计文本中每个单词出现的次数,并输出统计结果。
时间: 2024-09-23 07:10:24 浏览: 192
这是一个常见的文本分析任务,可以使用Python编写一个简单的程序来完成。以下是使用Python的解决方案:
```python
def word_count(text):
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 创建一个空字典来存储单词及其计数
word_dict = {}
# 遍历单词列表,更新字典中的计数
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
return word_dict
# 获取用户输入的英文文本
input_text = input("请输入一段英文文本:")
# 调用函数并打印结果
result = word_count(input_text)
for word, count in result.items():
print(f"{word}: {count}")
相关问题
编写一个程序,要求用户输入一段英文文本,统计文本中每个单词出现的次数,并输出统计
编写一个简单的Python程序来实现这个功能:
```python
def word_count(text):
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 创建一个空字典存储单词及其计数
word_dict = {}
# 遍历单词列表,更新字典中的计数
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
return word_dict
# 请求用户输入文本
user_text = input("请输入一段英文文本: ")
# 统计并打印结果
word_counts = word_count(user_text)
for word, count in word_counts.items():
print(f"{word}: {count} 次")
编写一个程序,从用户输入的一段文本中统计每个单词出现的次数,并将这些单词及其对应的频率按字母顺序输出。要求使用 TreeMap 来存储单词及其出现次数,TreeMap 的键为单词,值为该单词的出现次数。
编写这样的程序可以分为以下几个步骤:
1. 获取用户输入的文本:首先,你需要创建一个 Scanner 对象,用于从标准输入读取用户的文本。
```java
Scanner scanner = new Scanner(System.in);
String inputText = scanner.nextLine();
```
2. 预处理文本:去除标点符号和转换为小写,只保留单词。
```java
String[] words = inputText.toLowerCase().replaceAll("[^a-z\\s]", "").split("\\s+");
```
3. 使用 TreeMap 存储数据:初始化一个 TreeMap,树的键将是单词,值将是计数器(初始为0)。
```java
TreeMap<String, Integer> wordCountMap = new TreeMap<>();
```
4. 遍历并更新字典:遍历预处理后的单词数组,对每个单词进行计数。
```java
for (String word : words) {
if (!word.isEmpty()) { // 如果单词不为空
wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1); // 更新计数
}
}
```
5. 按字母顺序打印结果:最后,按照 TreeMap 自然排序的特性,逐行输出每个单词及其出现次数。
```java
for (Map.Entry<String, Integer> entry : wordCountMap.entrySet()) {
System.out.println("Word: " + entry.getKey() + ", Frequency: " + entry.getValue());
}
```
完整代码示例如下:
```java
import java.util.Scanner;
import java.util.TreeMap;
public class WordFrequencyCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String inputText = scanner.nextLine();
String[] words = inputText.toLowerCase().replaceAll("[^a-z\\s]", "").split("\\s+");
TreeMap<String, Integer> wordCountMap = new TreeMap<>();
for (String word : words) {
if (!word.isEmpty()) {
wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1);
}
}
for (Map.Entry<String, Integer> entry : wordCountMap.entrySet()) {
System.out.println("Word: " + entry.getKey() + ", Frequency: " + entry.getValue());
}
scanner.close();
}
}
```
阅读全文