如何从 std::string::String 中删除换行符/换行符?

How do I remove line feeds / line breaks from std::string::String?

我找不到可以做到这一点的东西。到目前为止我所拥有的只是空白:

pub fn minify(&self) {
    println!("Minify task started ... ");
    let mut string_iter = self.mystring.split_whitespace();
    for strings in string_iter {
        println!("{}", strings);
    }
}

mystring 类似于:

let mystring = "p {
                  text-align: center;
                  color: red;
                } ";

首先,你必须定义什么是"line feed"。我选择字符 \n。在那种情况下,我只使用 replace:

println!("{}", string.replace('\n', ""))

这适用于 &strString

如果您不需要新字符串,我会在换行符上拆分并打印出来:

pub fn minify(string: &str) {
    for line in string.split('\n') {
        print!("{}", line);
    }
}

您现在可以 in-place 使用以下两个选项之一:

string.retain(|c| c != '\n')

或(仅限夜间)

string.remove_matches('\n');

查看 this playground 以查看它是否正常工作