This question already has answers here:
How do I convert a Vector of bytes (u8) to a string
(3个答案)
5个月前关闭。
我有一个Vec<&[u8]>要转换成这样的String
let rfrce: Vec<&[u8]> = rec.alleles();

for r in rfrce {
    // create new String from rfrce
}

我试过这个,但它不起作用,因为只有将u8转换成char是可能的,但是[u8]转换成char不是:
let rfrce = rec.alleles();

let mut str = String::from("");

for r in rfrce {
    str.push(*r as char);
}

最佳答案

因为ru8的数组,所以需要将其转换为有效的&str并使用push_str方法。

use std::str;

fn main() {
    let rfrce = vec![&[65,66,67], &[68,69,70]];

    let mut str = String::new();

    for r in rfrce {
        str.push_str(str::from_utf8(r).unwrap());
    }

    println!("{}", str);
}

Rust Playground

关于string - 正确的方式以字符串形式访问Vec <&[u8]> ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56664127/

10-12 21:26