#character #frequency #hello-world

character_frequency

一个简单的库,用于并发地计算字符串中的字符频率

5个版本

0.2.0 2023年2月18日
0.1.3 2022年5月21日
0.1.2 2022年5月21日
0.1.1 2022年5月21日
0.1.0 2022年5月21日

#1397 in 文本处理

MIT 协议

24KB
359

字符频率

Rust库,用于多线程中计算字符频率

函数

  • character_frequencies(text: &str) -> HashMap<char, usize> 返回一个包含在文本参数中计数的频率的映射。它将在可用的CPU数量上运行。
  • character_frequencies_with_n_threads(text: &str, threads: usize) -> HashMap<char, usize>: 返回一个包含在文本参数中计数的频率的映射。它将在指定的线程数上运行。
  • character_frequencies_w_case(text: &str,case:CaseSense) -> HashMap<char, usize> 与 character_frequencies() 相同,但具有大小写敏感的计数
  • character_frequencies_with_n_threads_w_case(text: &str,case:CaseSense) -> HashMap<char, usize> 与 character_frequencies_with_n_threads() 相同,但具有大小写敏感的计数

枚举

  • CaseSense::InsensitiveASCIIOnly - 在计数之前将ASCII字符转换为小写。这是默认设置。
  • CaseSense::Insensitive - 在计数之前将所有UTF8字符转换为小写。如果Unicode字符的小写版本是一个字符串而不是一个字符,则会引发恐慌。
  • CaseSense::Sensitive - 在计数之前不将任何字符转换为小写。

示例

此示例计算 Hello, World! 的字符频率并在之后打印它们

use character_frequency::*;

let frequency_map = character_frequencies("Hello, World!");

println!("Character frequencies:");
for (character, frequency) in frequency_map {
    print!("\'{}\': {},", character, frequency);
}
//Character frequencies:
//'r': 1 'd': 1 'o': 2 '!': 1 ',': 1 ' ': 1 'e': 1 'h': 1 'w': 1 'l': 3

这做了同样的事情,但具有大小写敏感度。

let frequency_map = character_frequencies_w_case("Hello WORLD",CaseSense::Sensitive);

println!("Character frequencies:");
for (character, frequency) in frequency_map {
    print!("\'{}\': {},", character, frequency);
}
//Character frequencies:
//'R': 1 'D': 1 'O': 1 'o': 1 ' ': 1 'e': 1 'H': 1 'W': 1 'l': 2 'L': 1

依赖关系

~77KB