1. ホーム

[解決済み】文字列をint型に変換する?

2022-03-26 19:30:49

質問

注意:この質問には1.0以前の非推奨のコードが含まれています! しかし、答えは正しいです。

を変換するには strint をRustで作ると、こんなことができるんです。

let my_int = from_str::<int>(my_str);

を変換する方法は、私が知っている限りでは Stringint は、そのスライスを取得して from_str といった具合になります。

let my_int = from_str::<int>(my_string.as_slice());

を直接変換する方法はありますか? Stringint ?

解決方法は?

を使って直接int型に変換することができます。 str::parse::<T>() メソッド .

let my_string = "27".to_string();  // `parse()` works with `&str` and `String`!
let my_int = my_string.parse::<i32>().unwrap();

パース先の型はターボフィッシュ演算子で指定することもできますし ( ::<> のように、明示的なタイプアノテーションを使用することもできます。

let my_int: i32 = my_string.parse().unwrap();

コメントにもあるように parse() Result . この結果は Err を指定した型として解析できなかった場合(例えば、文字列 "peter" として解析することはできません。 i32 ).