Note: this question contains deprecated pre-1.0 code! The answer is correct, though.
To convert a str
to an int
in Rust, I can do this:
let my_int = from_str::<int>(my_str);
The only way I know how to convert a String
to an int
is to get a slice of it and then use from_str
on it like so:
let my_int = from_str::<int>(my_string.as_slice());
Is there a way to directly convert a String
to an int
?
You can directly convert to an int using the str::parse::<T>()
method.
let my_string = "27".to_string(); // `parse()` works with `&str` and `String`!
let my_int = my_string.parse::<i32>().unwrap();
You can either specify the type to parse to with the turbofish operator (::<>
) as shown above or via explicit type annotation:
let my_int: i32 = my_string.parse().unwrap();
As mentioned in the comments, parse()
returns a Result
. This result will be an Err
if the string couldn't be parsed as the type specified (for example, the string "peter"
can't be parsed as i32
).