Rust Practice Exercises

Word Frequency Counter in Rust

Count how often each word appears with a HashMap and print the most common ones.

  • Beginner
  • 2 min read
  • 1 runnable example
What you'll learn
  • split_whitespace
  • entry().or_insert(0)
  • Sorting by count
counts
"the"3
"brown"1
"dog"1

The word is the key, the count is the value

Counting words is a typical job for a hash map: the word is the key and the number of times it appears is the value.

entry(word).or_insert(0) returns the counter for the word, creating it at 0 the first time. The pairs are then sorted by count, highest first, and by word when the counts are equal, so the output is always the same.

Key points

  1. entry creates the counter the first time.
  2. Sort by count, then by word.
  3. take(3) keeps the top three.

Runnable Rust example

Rust
Run code →
main.rs
use std::collections::HashMap;

fn main() {
    let text = "the quick brown fox jumps over the lazy dog the end";
    let mut counts: HashMap<&str, u32> = HashMap::new();

    for word in text.split_whitespace() {
        *counts.entry(word).or_insert(0) += 1;
    }

    let mut entries: Vec<(&str, u32)> = counts.into_iter().collect();
    entries.sort_by(|a, b| b.1.cmp(&a.1).then(a.0.cmp(b.0)));

    for (word, count) in entries.iter().take(3) {
        println!("{word}: {count}");
    }
}
Get a Run button for this example Result of running the code
the: 3
brown: 1
dog: 1

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Next: Iterators →

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges