gpt4 book ai didi

rust - 将包含Unicode数字的字符串解析成对应的Unicode字符?

转载 作者:行者123 更新时间:2023-11-29 08:14:26 25 4
gpt4 key购买 nike

有没有函数可以做这样的事情:

fn string_to_unicode_char(s: &str) -> Option<char> {
// ...
}

fn main() {
let s = r"\u{00AA}"; // note the raw string literal!
string_to_unicode_char(s).unwrap();
}

请注意,r"\u{00AA}" 使用 raw string我。 e.它不是 Unicode 序列,而是 8 个独立的符号,如 \ u { 0 0 A A }

我需要解释/转换/解析这个字符串,如果一切正常则返回一个字符,否则返回None。我对 Unicode 没有任何经验,所以欢迎提出任何想法。

最佳答案

我相信您正在寻找的函数是 char::from_u32 :

fn string_to_unicode_char(s: &str) -> Option<char> {
// Do something more appropriate to find the actual number
let number = &s[3..7];

u32::from_str_radix(number, 16)
.ok()
.and_then(std::char::from_u32)
}

fn main() {
let s = r"\u{00AA}"; // note the raw string literal!
let ch = string_to_unicode_char(s);
assert_eq!(ch, Some('\u{00AA}'));
}

关于rust - 将包含Unicode数字的字符串解析成对应的Unicode字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40055279/

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