rust - 如何从字符串中删除换行符?
问题描述
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));
}
推荐阅读
- regex - 将 ls 的结果通过管道传输到 Powershell 中的命令,使用正则表达式捕获
- swift - CircleImage 在选择器中选择一个选项并添加到列表后不断改变颜色
- javascript - “this”关键字未定义
- javascript - 在不覆盖元素的情况下操作数组
- java - 检查远程服务器中的路径是否为目录 JSch
- scala - 如何覆盖子类中的抽象特征类型
- html - 如何在 HTML 中设置 aria 标签元素的样式
- javascript - 尝试使用 javascript 为汉堡菜单设置动画,但是它不起作用并且找不到任何错误
- vim - 如何在 Vim 中每 N 行显示行号?
- python-3.x - Pyinstaller 没有调用本地钩子