这个问题看似微不足道,但我找不到答案。假设这letter是一个单个字符串,我如何将字母转换为字符?
let mut letter = String::new();
io::stdin()
.read_line(&mut letter)
.expect("Failed to read line");
Run Code Online (Sandbox Code Playgroud)
一种解决方案是使用charsmethod。这将返回char一个字符串切片 s 上的迭代器。
let letter_as_char: char = letter.chars().next().unwrap();\nprintln!("{:?}", letter_as_char);\nRun Code Online (Sandbox Code Playgroud)\n但重要的是要记住
\n\n\n\n
char表示 Unicode 标量值,可能与您对 \xe2\x80\x98 字符\xe2\x80\x99 的想法不符。对字素簇的迭代可能是\n您真正想要的。例如,考虑字符串HRun Code Online (Sandbox Code Playgroud)\nlet y = "H";\n\nlet mut chars = y.chars();\n\nassert_eq!(Some(\'H\'), chars.next()); \nassert_eq!(None, chars.next());\n现在考虑
\n"y\xcc\x86"Run Code Online (Sandbox Code Playgroud)\nlet y = "y\xcc\x86";\n\nlet mut chars = y.chars();\n\nassert_eq!(Some(\'y\'), chars.next()); // not \'y\xcc\x86\'\nassert_eq!(Some(\'\\u{0306}\'), chars.next());\n\nassert_eq!(None, chars.next());\n
也可以看看:
\n\n| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |