注意:此问题包含不推荐使用的1.0版本之前的代码!然而,答案是正确的。要将str到一个int在Rust中,我可以这样做:
let my_int = from_str::(my_str);我知道如何将String到一个int就是分到一小块然后用from_str就像这样:
let my_int = from_str::(my_string.as_slice());有没有一种方法可以直接将String到一个int
发布于 2014-12-29 12:09:38
方法可以直接转换为int类型。str::parse::()method.
let my_string = "27".to_string(); // `parse()` works with `&str` and `String`!
let my_int = my_string.parse::().unwrap();您可以使用turbofish运算符指定要解析到的类型(::<>)如上所示,或者通过显式类型注释:
let my_int: i32 = my_string.parse().unwrap();
正如评论中提到的,parse()返回一个`Result`..。此结果将是一个Err如果无法将字符串解析为指定的类型(例如,字符串"peter"无法解析为i32)。
发布于 2015-05-03 12:01:49
let my_u8: u8 = "42".parse::().unwrap();
let my_u32: u32 = "42".parse::().unwrap();
// or, to be safe, match the `Err`
match "foobar".parse::() {
Ok(n) => do_something_with(n),
Err(e) => weep_and_moan(),
}`str::parse::`返回一个Result和`Result::unwrap`“展开结果,生成
Ok或者如果值为Err事件提供了一条紧急消息。Err的价值。“`str::parse`是一通用因此是尖括号中的类型。
发布于 2019-02-17 20:48:10
如果你的字符串是从stdin().read_line,你必须先修剪它。
let my_num: i32 = my_num.trim().parse()
.expect("please give me correct string number!");https://stackoverflow.com/questions/27043268
复制相似问题