如何从字符串中删除newline字符



我正在尝试从 String删除newline字符(从文件中读取文件内容(并将其转换为 Vec<u8>

示例输入字符串:

let ss = String::from("AAAAAAAAnBBBBBBBBBnCCCCCCnDDDDDnn");
fn parse(s: String) -> Vec<u8> {
    let s = s.chars().skip_while(|c| *c == 'n');
    let sett = s.into_iter().map(|c| c as u8).collect();
    sett
}

虽然我没有错误,但skip_while似乎没有从字符串中删除NewLine字符。我在这里做错了什么?

您基本上可以从字符串中替换 n,然后用in_bytes((

将其转换为 Vec<u8>
fn parse(s: String) -> Vec<u8> {
    s.replace("n", "").into_bytes()
}

如果您想使用迭代器进行操作,则可以使用过滤器进行操作:

fn parse(s: String) -> Vec<u8> {
    s.chars().filter(|c| *c != 'n').map(|c| c as u8).collect()
}

您可以像以下内容一样称呼它:

use std::str::from_utf8;
fn main() {
    let my_string = String::from("AAAAAAAAnBBBBBBBBBnCCCCCCnDDDDDnn");
    let parsed_string = parse(my_string.clone());
    println!("{:?}", from_utf8(&parsed_string));
}

游乐场

最新更新