[string] Vec <char>를 문자열로 변환하는 방법

Vec<char>인쇄 할 수 있도록 문자열 형식 으로 변환하는 방법은 무엇입니까?



답변

collect()반복자에서 사용 :

let v = vec!['a', 'b', 'c', 'd'];
let s: String = v.into_iter().collect();
println!("{}", s);

원래 벡터가 사용됩니다. 보관해야하는 경우 다음을 사용하십시오 v.iter().

let s: String = v.iter().collect();

char32 비트 유니 코드 스칼라 값 이기 때문에 더 직접적인 방법은 없으며 Rust의 문자열 u8은 UTF-8 인코딩으로 텍스트를 나타내는 바이트 시퀀스 ( )입니다. chars의 시퀀스에 직접 매핑되지 않습니다 .


답변

다음은 벡터를 사용하는 더 읽기 쉬운 버전입니다.

use std::iter::FromIterator;

fn main() {
    let v = vec!['a', 'b', 'c', 'd'];
    let s = String::from_iter(v);
    // vs
    let s: String = v.into_iter().collect();
}

참고 collect전화에 구현됩니다 FromIterator::from_iter:

fn collect<B: FromIterator<Self::Item>>(self) -> B
where
    Self: Sized,
{
    FromIterator::from_iter(self)
}


답변