gpt4 book ai didi

rust - 将字符转换为大写

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

我有一个包含单个 char 的变量。我想将此 char 转换为大写。但是,to_uppercase 函数返回一个 rustc_unicode::char::ToUppercase 结构而不是 char

最佳答案

说明

ToUppercase 是一个 Iterator,它可能产生多个 char。这是必要的,因为一些 Unicode 字符由多个“Unicode 标量值”组成(Rust char 表示)。

一个很好的例子是所谓的 ligatures .试试这个(on playground):

let fi_upper: Vec<_> = 'fi'.to_uppercase().collect();
println!("{:?}", fi_upper); // prints: ['F', 'I']

“fi”连字是单个字符,其大写版本由两个字母/字符组成。


解决方案

有多种可能性如何处理:

  1. 处理 &str:如果您的数据实际上是字符串形式,请使用 str::to_uppercase它返回一个更易于使用的 String
  2. 使用 ASCII 方法:如果您确定您的数据只是 ASCII 和/或您不关心 unicode 符号,您可以使用 std::ascii::AsciiExt::to_ascii_uppercase它只返回一个 char。但它只会将字母 'a' 更改为 'z' 并忽略所有其他字符!
  3. 手动处理:像上面的例子那样收集到StringVec中。

关于rust - 将字符转换为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432199/

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