How do I check if a string contains any whitespace in Rust?
For example, these should all return true:
"Hello, world!"
"Hello\n"
"This\tis\ta\ttab"
The isspace() function in C++ checks if the given character is a whitespace character or not.
Python String isspace() is a built-in method used for string handling. The isspace() method returns “True” if all characters in the string are whitespace characters, Otherwise, It returns “False”. This function is used to check if the argument contains all whitespace characters such as: ' ' – Space.
You can pass char::is_whitespace
to .contains()
:
assert!("Hello, world!".contains(char::is_whitespace));
assert!("Hello\n".contains(char::is_whitespace));
assert!("This\tis\ta\ttab".contains(char::is_whitespace));
char::is_whitespace
returns true if the character has the Unicode White_Space
property.
Alternatively, you can use char::is_ascii_whitespace
if you only want to match ASCII whitespace (space, horizontal tab, newline, form feed, or carriage return):
// This has a non-breaking space, which is not ASCII.
let string = "Hello,\u{A0}Rust!\n";
// Thus, it's *not* ASCII whitespace
assert!(!string.contains(char::is_ascii_whitespace));
// but it *is* Unicode whitespace.
assert!(string.contains(char::is_whitespace));
As someone mentioned, if you do not need to deal with Unicode, it will be faster to just explicitly name the characters you care about:
fn main() {
let a = vec!["false", "true space", "true newline\n", "true\ttab"];
let a2: &[char] = &[' ', '\n', '\t'];
for s in a.iter() {
let b = s.contains(a2);
println!("{}", b);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With