gpt4 book ai didi

rust - 如何将 Rust char 转换为整数,以便 '1' 变为 1?

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

我正在尝试计算给定数字的数字总和。例如,134 将给出 8

我的计划是使用 .to_string() 将数字转换为字符串,然后使用 .chars() 将数字作为字符进行迭代。然后我想将迭代中的每个 char 转换为一个整数并将其添加到一个变量中。我想得到这个变量的最终值。

我尝试使用下面的代码将 char 转换为整数:

fn main() {
let x = "123";
for y in x.chars() {
let z = y.parse::<i32>().unwrap();
println!("{}", z + 1);
}
}

( Playground )

但它会导致这个错误:

error[E0599]: no method named `parse` found for type `char` in the current scope
--> src/main.rs:4:19
|
4 | let z = y.parse::<i32>().unwrap();
| ^^^^^

这段代码完全符合我的要求,但首先我必须将每个 char 转换成一个字符串,然后转换成一个整数,然后将 sum 递增 >z.

fn main() {
let mut sum = 0;
let x = 123;
let x = x.to_string();
for y in x.chars() {
// converting `y` to string and then to integer
let z = (y.to_string()).parse::<i32>().unwrap();
// incrementing `sum` by `z`
sum += z;
}
println!("{}", sum);
}

( Playground )

最佳答案

你需要的方法是char::to_digit .它将 char 转换为它在给定基数中表示的数字。

您还可以使用 Iterator::sum方便地计算序列的和:

fn main() {
const RADIX: u32 = 10;
let x = "134";
println!("{}", x.chars().map(|c| c.to_digit(RADIX).unwrap()).sum::<u32>());
}

关于rust - 如何将 Rust char 转换为整数,以便 '1' 变为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983414/

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