繁体   English   中英

我们如何在特定分隔符之前连接向量元素并在 Rust 中创建新向量

[英]How can we Concatenate vector elements before specific separator and make new vector in Rust

我想将运算符之前名为“items”的向量的所有 3 个元素和运算符之后的两个元素连接起来,像这样 ["2","2","2","+","2","3"] 到 [ "222","+","23"]

let items = vec!["2","2","2","+","2","3"];
let mut new_items = vec![];
for i in 0..items.len() {
    new_items.insert(i, items[i].to_owned());
}
let mut count = 0;
for i in 0..new_items.len() {
    if new_items[i] == "+" {}
    else {            
        new_items[i] = format!("{}{}",new_items[i],new_items[i+1]);
        new_items.remove(i+1);
        count += 1;
    }
}

println!("{:?}",new_items);

也许类似于以下内容:

pub fn main() {
    let items = vec!["2","2","2","+","2","3"];

    // use a number variable to capture the operand
    let mut number = String::new();
    let mut new_items = vec![];

    for s in items {
        if s == "+" {
            // if found an operator, push and clear the current operand and operator
            new_items.push(number.drain(..).collect());
            new_items.push(s.to_owned());
        } else {
            number.push_str(s);
        }
    }

    if !number.is_empty() {
        new_items.push(number);
    }

    println!("{:?}", new_items);
}

操场

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM