回顾:单词计数器
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 34 课,共 66 课。
挑战
简单你会收到一个句子作为输入。统计句子中每个单词出现的次数,并将计数存储在哈希映射中。然后打印每个不重复的单词及其计数。
要求:
- 从
std::collections导入HashMap - 创建一个类型为
HashMap<String, i32>的可变哈希映射 - 将输入句子作为一整行读取
- 使用
.split_whitespace()将句子拆分为单个单词 - 对于每个单词,使用
.entry()和.or_insert(0),如果该单词不存在,则将计数初始化为0 - 使用
.or_insert(0)后,将该单词的计数加1 - 处理完所有单词后,遍历哈希映射,并按以下格式打印每个单词及其计数:
[word]: [count]
输入:
- 一行句子,单词之间用空格分隔(例如,
hello world hello rust world hello)
输出:
- 每个不重复的单词占一行,格式为:
[word]: [count] - 不同测试运行中的输出行顺序可能不同
亲手试试
use std::collections::HashMap;
use std::io;
fn main() {
// 读取输入的句子
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// 创建一个可变的哈希映射,存储每个单词的出现次数
let mut word_count: HashMap<String, i32> = HashMap::new();
// TODO: 在下面编写你的代码
// 将句子拆分成单词,并统计每个单词的出现次数
// 打印每个单词及其出现次数
}逻辑与流程中的所有课
自己练习: Rust 在线编译器