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