从字符串中删除所有空格

Remove all whitespace from string

如何从字符串中删除所有空格?我可以想到一些明显的方法,例如遍历字符串并删除每个空白字符,或使用正则表达式,但这些解决方案的表现力或效率不高。从字符串中删除所有空格的简单有效方法是什么?

如果要修改 String,请使用 retain。如果可用,这可能是最快的方法。

fn remove_whitespace(s: &mut String) {
    s.retain(|c| !c.is_whitespace());
}

如果您因为仍然需要它或只有一个 &str 而无法修改它,那么您可以使用过滤器并创建一个新的 String。当然,这将不得不分配 String.

fn remove_whitespace(s: &str) -> String {
    s.chars().filter(|c| !c.is_whitespace()).collect()
}

一个好的选择是使用 split_whitespace 然后收集到一个字符串 :

fn remove_whitespace(s: &str) -> String {
    s.split_whitespace().collect()
}

其实我找到了一个更短的方法

fn no_space(x : String) -> String{
  x.replace(" ", "")
}