स्ट्रिंग से उद्धरण चिह्न हटाना

Rust:
स्ट्रिंग से उद्धरण चिह्न हटाना

कैसे करें:

fn remove_quotes(s: &str) -> String {
    s.trim_matches(|c| c == '\"' || c == '\'').to_string()
}

fn main() {
    let quoted_str = "\"नमस्ते, Rustaceans!\"";
    let cleaned_str = remove_quotes(quoted_str);
    println!("{}", cleaned_str);
    // आउटपुट: नमस्ते, Rustaceans!
}

कभी-कभी आपके पास मिश्रित कोट्स वाली स्ट्रिंग होती है, ऐसी:

fn main() {
    let mixed_quoted = "'Rust कहता है: \"नमस्ते, दुनिया!\"'";
    let cleaned_str = remove_quotes(mixed_quoted);
    println!("{}", cleaned_str);
    // आउटपुट: Rust कहता है: "नमस्ते, दुनिया!"
}

यहाँ, केवल सबसे बाहरी एकल कोट्स को हटाया गया है।

गहराई से विचारना

जब किसी स्ट्रिंग से कोट्स हटा रहे होते हैं, तो आप सोच सकते हैं कि यह .replace("\"", "") जैसा सरल क्यों नहीं है। पहले, टेक्स्ट से निपटने का तरीका कम मानकीकृत था, और विभिन्न सिस्टमों के पाठ को संग्रहीत और प्रसारित करने के भिन्न तरीके थे, अक्सर कुछ विशेष वर्णों के लिए ‘एस्केप सीक्वेंस’ के साथ। Rust की trim_matches विधि अधिक बहुमुखी है, यह आपको विभिन्न वर्णों को ट्रिम करने के लिए निर्दिष्ट करने, और क्या स्ट्रिंग के शुरू (प्रीफिक्स), अंत (सफिक्स), या दोनों तरफ से ट्रिम करना है, यह चुनने की अनुमति देती है।

विकल्प हैं, बिल्कुल। Regex स्ट्रिंग मेनिपुलेशन के लिए एक शक्तिशाली उपाय है, जो जटिल पैटर्न को मिलान करने में सक्षम है, और केवल कोट्स हटाने के लिए ओवरकिल होगा। trim_in_place जैसी लाइब्रेरियाँ स्थल पर ट्रिमिंग की पेशकश कर सकती हैं बिना नई String ऑब्जेक्ट बनाने के अतिरिक्त परिमाण के, जो प्रदर्शन महत्वपूर्ण अनुप्रयोगों के लिए वांछनीय हो सकता है।

आंतरिक रूप से, trim_matches वास्तव में स्ट्रिंग के वर्णों के माध्यम से दोनों सिरों से इटरेट करता है, प्रदान किए गए पैटर्न के खिलाफ जाँच करता है जब तक कि एक गैर-मेल वर्ण नहीं मिल जाता है। यह जो करता है उसके लिए यह कुशल है, लेकिन हमेशा यह जानने के लिए सतर्क रहें कि यह यूनिकोड स्केलर मानों के साथ कार्य कर रहा है। यदि आपकी स्ट्रिंग में बहु-बाइट यूनिकोड वर्ण हो सकते हैं, तो आपको चिंता करने की आवश्यकता नहीं है कि यह उन्हें तोड़ देगा।

देखें भी