gpt4 book ai didi

unicode - 如何计算 Rust 中字符串中的唯一字素簇?

转载 作者:行者123 更新时间:2023-11-29 07:50:27 24 4
gpt4 key购买 nike

例如,对于

let n = count_unique_grapheme_clusters("🇧🇷 🇷🇺 🇧🇷 🇺🇸 🇧🇷");
println!("{}", n);

预期的输出是(空格和三个标志:"", "🇧🇷", "🇷🇺", “🇺🇸”):

4

最佳答案

我们可以使用 graphemes方法来自 unicode-segmentation crate迭代字素簇并将它们保存在 HashSet<&str> 中过滤掉重复项。然后我们得到 .len()容器。

extern crate unicode_segmentation; // 1.2.1

use std::collections::HashSet;

use unicode_segmentation::UnicodeSegmentation;

fn count_unique_grapheme_clusters(s: &str) -> usize {
let is_extended = true;
s.graphemes(is_extended).collect::<HashSet<_>>().len()
}

fn main() {
assert_eq!(count_unique_grapheme_clusters(""), 0);
assert_eq!(count_unique_grapheme_clusters("a"), 1);
assert_eq!(count_unique_grapheme_clusters("🇺🇸"), 1);
assert_eq!(count_unique_grapheme_clusters("🇷🇺é"), 2);
assert_eq!(count_unique_grapheme_clusters("🇧🇷🇷🇺🇧🇷🇺🇸🇧🇷"), 3);
}

Playground

关于unicode - 如何计算 Rust 中字符串中的唯一字素簇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818497/

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