检查字符串是空还是空白

时间:2014-10-28 09:50:28

标签: rust

对于a)& str b)字符串,检查字符串是空的还是空白的正确方法是什么?我以前是"aaa".len() == 0做的,但我的直觉告诉我应该采用另一种方式吗?

4 个答案:

答案 0 :(得分:21)

&strString都有一个名为is_empty的方法:

这是他们的使用方式:

assert_eq!("".is_empty(), true); // a)
assert_eq!(String::new().is_empty(), true); // b)

答案 1 :(得分:4)

其他人已经回复说Collection.is_empty可以用来知道一个字符串是否为空,但假设“是空白”你的意思是“只由空格组成”那么你想要UnicodeStrSlice.is_whitespace(),这将是对于空字符串和仅由White_Space unicode属性设置的字符组成的字符串都是true。

只有字符串切片实现UnicodeStrSlice,因此如果您从String开始,则必须使用.as_slice()

tl; dr:s.is_whitespace() if s: &strs.as_slice().is_whitespace() if s: String

答案 2 :(得分:1)

在doc:

中找到
impl Collection for String
    fn len(&self) -> uint
    fn is_empty(&self) -> bool

答案 3 :(得分:0)

可以使用以下方法检查仅空字符串或空白字符串:

s.trim().is_empty()

其中trim()返回一个切片,其中从字符串(https://doc.rust-lang.org/stable/std/primitive.str.html#method.trim)的开头和结尾除去了空格字符。