从字符串中删除所有空格

时间:2019-07-16 18:55:32

标签: regex rust whitespace removing-whitespace

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

3 个答案:

答案 0 :(得分:5)

如果要修改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()
}

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

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

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