Instead of trim_end_matches
(previously called trim_right_matches
), I’d recommend using trim_end
(previously called trim_right
) or even better, just trim
:
use std::io;
fn main() {
let mut correct_name = String::new();
io::stdin()
.read_line(&mut correct_name)
.expect("Failed to read line");
let correct_name = correct_name.trim();
if correct_name == "y" {
println!("matched y!");
} else if correct_name == "n" {
println!("matched n!");
}
}
This last case handles lots of types of whitespace:
Returns a string slice with leading and trailing whitespace removed.
‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.
Windows / Linux / macOS shouldn’t matter.
You could also use the trimmed result’s length to truncate the original String
, but in this case you should only use trim_end
!
let trimmed_len = correct_name.trim_end().len();
correct_name.truncate(trimmed_len);