gpt4 book ai didi

hashmap - 有什么有效的方法可以将不区分大小写的字符串作为 HashMap 键吗?

转载 作者:行者123 更新时间:2023-11-29 07:54:51 26 4
gpt4 key购买 nike

我正在尝试计算某个单词在文本中出现的次数。我正在使用 HashMap 并且我的实现忽略了大小写。我通过将所有单词转换为小写来实现这一点:

for line in reader.lines() {
for mut curr in line.as_ref().unwrap().split_whitespace() {
match word_map.entry(curr.to_string().to_lowercase()) {
Entry::Occupied(entry) => {
*entry.into_mut() += 1;
}
Entry::Vacant(entry) => {
entry.insert(1);
}
}
}
}

我想将“the”和“The”视为相同,但如果“the”没有出现,则将“The”保留在HashMap 中。现在,我将所有单词都保留为小写。有什么有效的方法可以做到这一点吗?

最佳答案

最简单的方法是使用 UniCase作为关键:

use unicase::UniCase;

type Words = std::collections::HashMap<UniCase, u32>;

如果我理解他们的文档,UniCase::new("The") 会在其中存储实际的字符串 "The",但是如果您将它与 Unicase::new("the"),你会看到是同一个字符串。

关于hashmap - 有什么有效的方法可以将不区分大小写的字符串作为 HashMap 键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47813162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com