Avatar ·

如何在 Rust 中将 char 转换为 int,使 '1' 变成 1?

大家好!我刚开始学习 Rust,遇到了一个看似简单的任务。我需要从字符串中读取一个字符并将其转换为整数。例如,我有一个字符串 "123",我想遍历它,取出每个字符 ('1', '2', '3') 并将其转换为相应的整数 (1, 2, 3)。 在其他语言中,比如 Python 或 JavaScript,这非常简单:`int('1')` 或 `parseInt('1')`。但在 Rust 中,我找不到直接的对应方法。我尝试写了这样的代码: ```rust fn main() { let c: char = '1'; let n: i32 = c as i32; // 尝试 1 println!("{}", n); } ``` 但输出是 49,而不是 1。我明白 49 是字符 '1' 的 ASCII 码。如何正确获取数字的数值而不是其编码?我需要一个适用于 '0' 到 '9' 任意数字的解决方案。希望它是 Rust 惯用的,并且不包含 unsafe 代码。提前感谢帮助! <<>>

正确的转换