如何在Rust中把字符串转换为Int,把int转换为字符串?

1,314 阅读2分钟

本教程介绍了以下内容

  • 如何在Rust中把字符串解析为int?
  • 如何将int转换为字符串
  • 如何从控制台读取输入并将其转换为整数?

例如,如果字符串是 "123",它将转换为整数类型的123值。

我们有多种方法可以进行转换。

如何在Rust中把字符串转换为int?

这个例子通过使用parse() 方法将一个字符串转换为int。String parse() method 返回结果对象。调用unwrap 方法返回整数类型

下面是一个示例程序

fn main() {

    let str = "123";
    let number: u32 = str.parse().unwrap();

    println!("{}", number);
}

输出

123

在下面的例子中,如果字符串包含非数字的数字,parse()方法会抛出ParseIntError

下面是一个示例程序

fn main() {
    let str = "123abc";
    let number: u32 = str.parse().unwrap();

    println!("{}", number);
}

运行上述程序时抛出ParseIntError

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', test.rs:7:35
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

让我们看看一个程序,从控制台读取字符串,并在rust中把它转换成整数类型。

  • 打印字符串到控制台
  • 创建一个可变的新字符串
  • 使用read_line()函数将控制台的输入读成字符串。
  • 修剪字符串并调用parse()方法,返回Result 对象。
  • 将结果转换为类型u32
use std::io;

fn main() {
    println!("Please enter Age?");
    let mut line = String::new();
    io::stdin().read_line(&mut line).expect("Error to read");
    let age: u32 = line.trim().parse().expect("Expect a number");
    println!("{}", age);
}

Please enter Age?
123
123

如何在Rust中把一个int转换为String?

这个例子通过使用to_string() 方法将int转换为字符串。 String to_string() 方法返回整数类型的字符串版本

下面是一个示例程序

fn main() {
    let number: u8 = 11;
    let str: String = number.to_string();
    println!("{}", str);
}

输出

11

总结

综上所述,通过实例学习在Rust中将字符串转换为/或整数类型的多种方法