gpt4 book ai didi

rust - 如何从字符串中删除换行符?

转载 作者:行者123 更新时间:2023-11-29 08:17:46 28 4
gpt4 key购买 nike

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

示例输入字符串:

let ss = String::from("AAAAAAAA\nBBBBBBBBB\nCCCCCC\nDDDDD\n\n");
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似乎没有从字符串中删除换行符。我在这里做错了什么?

最佳答案

你基本上可以替换\n从字符串然后将其转换为 Vec<u8>into_bytes()

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("AAAAAAAA\nBBBBBBBBB\nCCCCCC\nDDDDD\n\n");
let parsed_string = parse(my_string.clone());
println!("{:?}", from_utf8(&parsed_string));
}

Playground

关于rust - 如何从字符串中删除换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56802302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com