Arduino - स्ट्रिंग ऑब्जेक्ट

Arduino प्रोग्रामिंग में प्रयुक्त दूसरे प्रकार की स्ट्रिंग String Object है।

एक वस्तु क्या है?

एक ऑब्जेक्ट एक निर्माण है जिसमें डेटा और फ़ंक्शन दोनों शामिल हैं। एक स्ट्रिंग ऑब्जेक्ट को एक चर की तरह बनाया जा सकता है और एक मान या स्ट्रिंग निर्दिष्ट किया जा सकता है। स्ट्रिंग ऑब्जेक्ट में फ़ंक्शन (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) में "तरीके" कहा जाता है) जो स्ट्रिंग ऑब्जेक्ट में निहित स्ट्रिंग डेटा पर काम करते हैं।

निम्नलिखित स्केच और स्पष्टीकरण से यह स्पष्ट हो जाएगा कि कोई वस्तु क्या है और स्ट्रिंग ऑब्जेक्ट का उपयोग कैसे किया जाता है।

उदाहरण

void setup() { 
   String my_str = "This is my string.";
   Serial.begin(9600);

   // (1) print the string
   Serial.println(my_str);

   // (2) change the string to upper-case
   my_str.toUpperCase();
   Serial.println(my_str);

   // (3) overwrite the string
   my_str = "My new string.";
   Serial.println(my_str);

   // (4) replace a word in the string
   my_str.replace("string", "Arduino sketch");
   Serial.println(my_str);

   // (5) get the length of the string
   Serial.print("String length is: ");
   Serial.println(my_str.length());
}

void loop() { 

}

परिणाम

This is my string.
THIS IS MY STRING.
My new string.
My new Arduino sketch.
String length is: 22

एक स्ट्रिंग ऑब्जेक्ट बनाया जाता है और स्केच के शीर्ष पर एक मान (या स्ट्रिंग) असाइन किया जाता है।

String my_str = "This is my string." ;

यह नाम के साथ एक स्ट्रिंग ऑब्जेक्ट बनाता है my_str और इसे "यह मेरा तार है।"

इसकी तुलना एक वैरिएबल बनाने और एक मान को निर्दिष्ट करने के लिए की जा सकती है जैसे कि पूर्णांक -

int my_var = 102;

स्केच निम्नलिखित तरीके से काम करता है।

स्ट्रिंग मुद्रण

स्ट्रिंग को कैरेक्टर मॉनिटर स्ट्रिंग की तरह ही सीरियल मॉनिटर विंडो में प्रिंट किया जा सकता है।

स्ट्रिंग को अपर-केस में कनवर्ट करें

स्ट्रिंग ऑब्जेक्ट my_str जो बनाया गया था, इसमें कई फ़ंक्शन या विधियाँ हैं, जिन्हें इस पर संचालित किया जा सकता है। इन विधियों को डॉट ऑपरेटर (।) और फिर उपयोग करने के लिए फ़ंक्शन के नाम के बाद ऑब्जेक्ट नाम का उपयोग करके लागू किया जाता है।

my_str.toUpperCase();

toUpperCase() समारोह में निहित स्ट्रिंग पर चल रही है my_strऑब्जेक्ट जो स्ट्रिंग का प्रकार है और स्ट्रिंग डेटा (या पाठ) को कनवर्ट करता है, जिसमें ऑब्जेक्ट ऊपरी मामले के पात्रों में शामिल है। स्ट्रिंगिंग वर्ग में होने वाले कार्यों की एक सूची Arduino स्ट्रिंग संदर्भ में पाई जा सकती है। तकनीकी रूप से, स्ट्रिंग को एक वर्ग कहा जाता है और इसका उपयोग स्ट्रिंग ऑब्जेक्ट बनाने के लिए किया जाता है।

एक स्ट्रिंग को अधिलेखित करें

असाइनमेंट ऑपरेटर का उपयोग नए स्ट्रिंग को असाइन करने के लिए किया जाता है my_str ऑब्जेक्ट जो पुराने स्ट्रिंग को बदलता है

my_str = "My new string." ;

असाइनमेंट ऑपरेटर का उपयोग चरित्र सरणी स्ट्रिंग्स पर नहीं किया जा सकता है, लेकिन केवल स्ट्रिंग ऑब्जेक्ट्स पर काम करता है।

स्ट्रिंग में एक शब्द की जगह

प्रतिस्थापित () फ़ंक्शन का उपयोग पहली स्ट्रिंग को उसके पास करने के लिए किया जाता है, दूसरे स्ट्रिंग द्वारा इसे पास किया जाता है। प्रतिस्थापित () एक और फ़ंक्शन है जो स्ट्रिंग वर्ग में बनाया गया है और इसलिए स्ट्रिंग ऑब्जेक्ट my_str पर उपयोग करने के लिए उपलब्ध है।

स्ट्रिंग की लंबाई हो रही है

स्ट्रिंग की लंबाई प्राप्त करना आसानी से लंबाई () का उपयोग करके किया जाता है। उदाहरण स्केच में, लंबाई () द्वारा लौटाए गए परिणाम को सीधे एक मध्यवर्ती चर का उपयोग किए बिना Serial.println () में पारित किया जाता है।

जब एक स्ट्रिंग वस्तु का उपयोग करने के लिए

स्ट्रिंग वर्ण सरणी की तुलना में स्ट्रिंग ऑब्जेक्ट का उपयोग करना बहुत आसान है। ऑब्जेक्ट में अंतर्निहित कार्य हैं जो स्ट्रिंग्स पर कई ऑपरेशन कर सकते हैं।

स्ट्रिंग ऑब्जेक्ट का उपयोग करने का मुख्य नुकसान यह है कि यह बहुत अधिक मेमोरी का उपयोग करता है और जल्दी से Arduinos RAM मेमोरी का उपयोग कर सकता है, जिसके कारण Arduino लटका, क्रैश या अप्रत्याशित रूप से व्यवहार कर सकता है। यदि एक Arduino पर एक स्केच छोटा है और वस्तुओं के उपयोग को सीमित करता है, तो कोई समस्या नहीं होनी चाहिए।

कैरेक्टर एरे स्ट्रिंग्स का उपयोग करना अधिक कठिन होता है और इस प्रकार के स्ट्रिंग्स पर काम करने के लिए आपको अपने स्वयं के कार्यों को लिखना पड़ सकता है। लाभ यह है कि आपके पास आपके द्वारा बनाए जाने वाले स्ट्रिंग सरणियों के आकार पर नियंत्रण है, इसलिए आप मेमोरी को बचाने के लिए सरणियों को छोटा रख सकते हैं।

आपको यह सुनिश्चित करने की आवश्यकता है कि आप स्ट्रिंग सरणियों के साथ सरणी सीमा के अंत से आगे नहीं लिखते हैं। स्ट्रिंग ऑब्जेक्ट में यह समस्या नहीं है और आपके लिए स्ट्रिंग सीमा का ध्यान रखेगा, बशर्ते इसके संचालन के लिए पर्याप्त मेमोरी हो। स्ट्रिंग ऑब्जेक्ट मेमोरी को लिखने की कोशिश कर सकता है जो मेमोरी से बाहर होने पर मौजूद नहीं है, लेकिन उस स्ट्रिंग के अंत में कभी भी नहीं लिखेगा जो वह चल रही है।

जहां स्ट्रिंग्स का उपयोग किया जाता है

इस अध्याय में हमने स्ट्रिंग्स के बारे में अध्ययन किया कि वे स्मृति और उनके संचालन में कैसे व्यवहार करते हैं।

स्ट्रिंग्स के व्यावहारिक उपयोगों को इस पाठ्यक्रम के अगले भाग में कवर किया जाएगा जब हम अध्ययन करते हैं कि सीरियल मॉनिटर विंडो से उपयोगकर्ता इनपुट कैसे प्राप्त करें और इनपुट को एक स्ट्रिंग में सहेजें।