【问题标题】:How can I split a vector into a vector of slices based on a separator?如何根据分隔符将向量拆分为切片向量?
【发布时间】:2020-06-01 15:10:00
【问题描述】:

如果我有一个向量,比如

let mut bytes = vec![0x01, 0x02, 0x03, 0x40, 0x04, 0x05, 0x40, 0x06, 0x40];

我想用0x40 分隔符分隔向量。有没有一种干净的方式来实现这个功能?

预期输出: [[0x01, 0x02, 0x03], [0x04, 0x05], [0x06]]

【问题讨论】:

标签: rust


【解决方案1】:

使用slice::split:

fn main() {
    let bytes = [0x01, 0x02, 0x03, 0x40, 0x04, 0x05, 0x40, 0x06, 0x40];
    let pieces: Vec<_> = bytes
        .split(|&e| e == 0x40)
        .filter(|v| !v.is_empty())
        .collect();
    println!("{:?}", pieces)
}

另见:

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2014-04-22
    相关资源
    最近更新 更多