📜  rust 将字符串转换为 int - Rust (1)

📅  最后修改于: 2023-12-03 15:19:53.214000             🧑  作者: Mango

Rust:将字符串转换为 int

在 Rust 中,将字符串转换为整数是一项基本任务。 Rust 标准库编程语言提供了以下方法来处理此任务。

使用 parse 方法

parse() 方法是处理字符串转换为整数的最基本方法。它可用于将字符串转换为整数、浮点数和其他基本类型。

以下示例演示如何使用 parse() 方法将字符串转换为整数。

let num: i32 = "42".parse().expect("Not a number!");

在这个例子中,使用 parse() 方法将字符串 "42" 转换为 i32,并将结果分配给变量 num。如果无法将字符串转换为整数,则会引发 panic。

处理错误

如果字符串无法转换为整数,则会发生错误。 Rust 提供了多种处理错误的方法。例如,unwrap() 方法可以解除 Option,而expect() 方法则可以打印错误消息。

以下示例演示了处理错误的方法。

let x: Result<i32, _> = "not a number".parse();
let y: i32 = match x {
    Ok(num) => num,
    Err(_) => 0,
};
println!("{}", y); // Prints: 0

在这个例子中,字符串 "not a number" 无法转换为整数。因此,parse() 方法将返回 Result 值,其中包含 Err

Result 值分配给变量 x。然后,使用 match 表达式处理结果。如果转换成功,则将值分配给变量 y,否则将其设置为 0。

处理无效数字

如果字符串包含无效数字,则转换将失败。例如,在 Rust 中,字符串 "test" 无法转换为整数。因此,parse() 方法将返回 Result 值,其中包含 Err

以下示例演示如何处理无效数字。

let x: Result<i32, _> = "test".parse();
let y: i32 = match x {
    Ok(num) => num,
    Err(_) => 0,
};
println!("{}", y); // Prints: 0

在这个例子中,字符串 "test" 无法转换为整数。因此,parse() 方法将返回 Result 值,其中包含 Err。我们使用和之前处理错误的方法一样的方式处理无效数字。如果转换成功,将值分配给变量 y,否则将其设置为 0。

使用 from_str_radix 方法

有时,您需要将字符串转换为不同的进制,例如十六进制或八进制。此时需要使用 from_str_radix() 方法。

以下示例演示如何将字符串转换为十六进制。

let num = i32::from_str_radix("2A", 16).unwrap();
println!("{}", num); // Prints: 42

在这个例子中,我们使用 from_str_radix() 方法将字符串 "2A" 转换为十六进制的整数,并将结果分配给变量 num

总结

在 Rust 中,将字符串转换为整数是一个基本任务。您可以使用 parse() 方法来执行此操作。如果无法将字符串转换为整数,则需要处理错误。如果需要将字符串转换为不同的进制,则使用 from_str_radix() 方法。