Vec <char> को स्ट्रिंग में कैसे बदलें


83

Vec<char>स्ट्रिंग रूप में कैसे परिवर्तित करें ताकि मैं इसे प्रिंट कर सकूं?

जवाबों:


129

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();

कोई और अधिक सीधा रास्ता नहीं charहै क्योंकि 32-बिट यूनिकोड स्केलर मूल्य है, और जंग में तार u8यूटीएफ -8 एन्कोडिंग में पाठ का प्रतिनिधित्व बाइट्स ( ) के अनुक्रम हैं । वे सीधे एस के दृश्यों के लिए मैप नहीं करते हैं char


27

यहाँ एक अधिक पठनीय संस्करण है जो वेक्टर का उपभोग करता है:

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)
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.