在Rust中如何将一个字符串转换为整数?

4

从标准输入读取会产生一个 String 字符串,但我该如何将其转换为整数?

use std::io;

fn main() {
    println!("Type something");

    let mut input = String::new();

    io::stdin()
        .read_line(&mut input)
        .expect("Failed to read line");

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

4
你应该阅读优秀的 Rust 书籍,其中专门介绍了从标准输入中读取数字的内容。 - Shepmaster
1个回答

16

使用parse方法:

use std::io;

fn main() {
    println!("Type something");

    let mut line = String::new();

    io::stdin()
        .read_line(&mut line)
        .expect("Failed to read line");

    let input: u32 = line
        .trim()
        .parse()
        .expect("Wanted a number");

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

请注意,从字符串中解析数字可能会失败,因此返回了一个Result。对于这个示例,我们使用expect在失败情况下触发panic。
另外,read_line会保留按下Enter键后的换行符,因此在解析之前使用trim来忽略它。

1
附注:只要类型T实现了trait FromStr,您可以在&str上调用解析(parse)函数以获取任何类型T。 - tolgap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接