trim_matches
从字符串中修剪自定义模式。模式可以是空字符:fn main() {
let mut data: Vec<u8> = vec![0; 8];
data[0] = 104;
data[1] = 105;
let res = String::from_utf8(data).expect("Found invalid UTF-8");
println!("{}: {:?}", res.len(), res);
// 8: "hi\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}"
let res = res.trim_matches(char::from(0));
println!("{}: {:?}", res.len(), res);
// 2: "hi"
}
这将从两侧删除0。如果您只想删除尾随的0,请改用trim_end_matches
。
Vec::with_capacity(512)
初始化数据并根据需要填充它来完全避免它们。 - MB-F
\0
?通常C字符串在字符串后面包含一个\0
,之后的每个字符可能都是垃圾。 - CodesInChaos