我有一个包含单个变量的变量char.我想将其转换char为大写.但是,该to_uppercase函数返回rustc_unicode::char::ToUppercase结构而不是a char.
Luk*_*odt 17
ToUppercase是一个Iterator,可能会产生不止一个char.这是必要的,因为一些Unicode字符由多个"Unicode标量值"(Rust char表示)组成.
let fi_upper: Vec<_> = '?'.to_uppercase().collect();
println!("{:?}", fi_upper); // prints: ['F', 'I']
Run Code Online (Sandbox Code Playgroud)
'fi'连字是一个单一字符,其大写版本由两个字母/字符组成.
有多种可能性如何处理:
&str:如果您的数据实际上是字符串形式,请使用str::to_uppercase返回String更容易使用的数据.std::ascii::AsciiExt::to_ascii_uppercase它返回一个char.但它只会改变字母'a'来'z'并忽略所有其他字符!String或Vec等.ToUppercase是一个迭代器,因为可能有一些Unicode字符的大写版本,因为字符的大写版本可能由几个代码点组成,如注释中指向的delnan.您可以将其转换为字符向量:
c.to_uppercase().collect::<Vec<_>>();
Run Code Online (Sandbox Code Playgroud)
然后,你应该将这些字符收集到一个字符串中,就像ker指出的那样.
| 归档时间: |
|
| 查看次数: |
3639 次 |
| 最近记录: |