सॉफ्टवेयर विकास में स्ट्रिंग हेरफेर मौलिक है; आखिरकार, अधिकांश प्रोग्रामिंग भाषाएं एक स्ट्रिंग प्रकार प्रदान करती हैं। एक स्ट्रिंग वर्णों का एक क्रम है: अक्षर, संख्याएँ और प्रतीक।
पाठ प्रसंस्करण और डेटा विश्लेषण से लेकर वेब विकास तक विभिन्न अनुप्रयोगों के लिए स्ट्रिंग हेरफेर काम आता है। लोकप्रिय स्ट्रिंग मैनीपुलेशन ऑपरेशन संयोजन, डेटा सत्यापन, निष्कर्षण और स्वरूपण हैं। गो मानक पुस्तकालय में "स्ट्रिंग्स" नामक एक स्ट्रिंग हेरफेर पैकेज प्रदान करता है।
तार पैकेज
तार पैकेज स्ट्रिंग हेरफेर और अन्य संचालन के लिए विभिन्न उपयोगी कार्य प्रदान करता है। पैकेज में सबस्ट्रिंग ऑपरेशंस, ट्रिमिंग, स्ट्रिंग्स की तुलना, स्ट्रिंग रूपांतरण, स्ट्रिंग बिल्डिंग, स्प्लिटिंग और बहुत कुछ के लिए कार्यक्षमता शामिल है।
आप अपनी आयात सूची में पैकेज का नाम निर्दिष्ट करके स्ट्रिंग्स पैकेज आयात कर सकते हैं।
आयात"स्ट्रिंग्स"
सबस्ट्रिंग की खोज की जा रही है
तार पैकेज सबस्ट्रिंग्स की खोज के लिए तीन कार्य प्रदान करता है:
रोकना कार्य, द इसमें कोई भी है समारोह, और शामिल है समारोह।रोकना फ़ंक्शन जांचता है कि निर्दिष्ट स्ट्रिंग में सबस्ट्रिंग है या नहीं। इसमें कोई भी है फ़ंक्शन जाँचता है कि क्या स्ट्रिंग में सबस्ट्रिंग में कोई वर्ण है, और शामिल है फ़ंक्शन जाँचता है कि क्या स्ट्रिंग में एक रूण (एक यूनिकोड वर्ण) है।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)समारोहमुख्य() {
एक स्ट्रिंग: = "हैलो वर्ल्ड!"
सबस्ट्रिंग: = "दुनिया"
वर्ण := "एइउ"
अरूण := 'ओ'
fmt. प्रिंट्लन (स्ट्रिंग्स। इसमें शामिल है (एस्ट्रिंग, सबस्ट्रिंग)) // आउटपुट: सच
fmt. प्रिंट्लन (स्ट्रिंग्स। ContainsAny (aString, वर्ण)) // आउटपुट: सच
fmt. प्रिंट्लन (स्ट्रिंग्स। सम्मिलित रूण (एस्ट्रिंग, एरुने)) // आउटपुट: सच
}
आप के साथ एक सबस्ट्रिंग की अनुक्रमणिका पुनर्प्राप्त कर सकते हैं अनुक्रमणिका, इंडेक्सएनी, इंडेक्सबाइट, और इंडेक्सफंक कार्य करता है। अनुक्रमणिका फ़ंक्शन एक सबस्ट्रिंग की अनुक्रमणिका देता है, अगर यह किसी अन्य स्ट्रिंग में होता है। इंडेक्सएनी समारोह के पहले उदाहरण की अनुक्रमणिका देता है एक यूनिकोड कोड बिंदु या -1 अगर कोई भी पात्र मौजूद नहीं है।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)समारोहमुख्य() {
एक स्ट्रिंग: = "हैलो वर्ल्ड!"
सबस्ट्रिंग: = "दुनिया"
वर्ण := "राइट"
बाइट कैरेक्टर: = बाइट('ओ')
अरूण := रूण('ओ')fmt. प्रिंट्लन (स्ट्रिंग्स। इंडेक्स (एस्ट्रिंग, सबस्ट्रिंग)) // आउटपुट: 7
fmt. प्रिंट्लन (स्ट्रिंग्स। इंडेक्सएनी (एस्ट्रिंग, वर्ण)) // आउटपुट: 7
fmt. प्रिंट्लन (स्ट्रिंग्स। इंडेक्सबाइट (एस्ट्रिंग, बाइट कैरेक्टर)) // आउटपुट: 4
च:= समारोह(आर रूण)बूल {
वापस करना आर == 'ओ'
}
fmt. प्रिंट्लन (स्ट्रिंग्स। इंडेक्सफंक (एस्ट्रिंग, एफ)) // आउटपुट: 4
fmt. प्रिंट्लन (स्ट्रिंग्स। इंडेक्सरुन (एस्ट्रिंग, एरुने)) // आउटपुट: 4
}
इंडेक्सबाइट स्ट्रिंग या में बाइट वर्ण के पहले उदाहरण का सूचकांक लौटाता है -1. इंडेक्सफंक फ़ंक्शन इंडेक्स को पहले यूनिकोड बिंदु की स्ट्रिंग में लौटाता है जो किसी दिए गए फ़ंक्शन को संतुष्ट करता है। अंततः इंडेक्सरून फ़ंक्शन रन के यूनिकोड कोड बिंदु के पहले उदाहरण का सूचकांक लौटाता है।
गो में सबस्ट्रिंग को बदलना
बदलना और सबको बदली करें फ़ंक्शन सबस्ट्रिंग को बदलने में मदद करता है। बदलना फ़ंक्शन स्ट्रिंग, मूल सबस्ट्रिंग और प्रतिस्थापन और कई प्रतिस्थापन लेता है। सबको बदली करें फ़ंक्शन केवल स्ट्रिंग, प्रारंभिक सबस्ट्रिंग और प्रतिस्थापन लेता है।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)
समारोहमुख्य() {
स्ट्रिंग: = "यह संशोधित करने के लिए एक परीक्षण स्ट्रिंग है।"
fmt. प्रिंट्लन (स्ट्रिंग्स। बदलें (स्ट्रिंग, "है", "था", 1))
fmt. प्रिंट्लन (स्ट्रिंग्स। बदलें (स्ट्रिंग, "है", "था", -1))
fmt. प्रिंट्लन (स्ट्रिंग्स। सभी को बदलें (स्ट्रिंग, "है", "था"))
}
ध्यान दें कि आप स्ट्रिंग के भीतर प्रत्येक घटना को बदलने के लिए रिप्लेस और रिप्लेसअल दोनों का उपयोग कर सकते हैं।
विभाजन और स्ट्रिंग्स में शामिल होना
तार पैकेज में शामिल है विभाजित करना, स्प्लिट आफ्टर, स्प्लिट आफ्टरएन, और स्प्लिटएन स्ट्रिंग्स को विभाजित करने के लिए कार्य करता है जो स्ट्रिंग्स का एक टुकड़ा लौटाता है।
विभाजित करना विधि एक निर्दिष्ट सीमांकक द्वारा विभाजित होती है। के समान विभाजित करना विधि, द स्प्लिट आफ्टर विधि स्ट्रिंग को विभाजित करती है, लेकिन इसके परिणामों में विभाजक शामिल है।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)समारोहमुख्य() {
स := "यह विभाजित होने के लिए एक परीक्षण स्ट्रिंग है।"
fmt. प्रिंट्लन (स्ट्रिंग्स। विभाजन (एस, " "))
fmt. प्रिंट्लन (स्ट्रिंग्स। विभाजन के बाद (एस, " "))
fmt. प्रिंट्लन (स्ट्रिंग्स। स्प्लिटआफ्टरएन(एस, " ", 3))
fmt. प्रिंट्लन (स्ट्रिंग्स। स्प्लिटएन(एस, " ", 3))
}
स्प्लिट आफ्टर एन पद्धति के समान है स्प्लिट आफ्टर फ़ंक्शन सिवाय इसके कि फ़ंक्शन स्ट्रिंग को निर्दिष्ट अधिकतम सबस्ट्रिंग में विभाजित करता है। स्प्लिटएन विधि सबस्ट्रिंग में विभाजक को शामिल किए बिना स्ट्रिंग को निर्दिष्ट अधिकतम संख्या में विभाजित करती है।
आप के साथ तार जोड़ सकते हैं जोड़ना समारोह से तार पैकेट। जोड़ना समारोह एक टुकड़ा और एक सीमांकक लेता है।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)
समारोहमुख्य() {
fmt. प्रिंट्लन (स्ट्रिंग्स। जोड़ना([]डोरी{"नमस्ते", "दुनिया"}, ":"))
// आउटपुट: "हैलो: वर्ल्ड"
}
स्ट्रिंग केस में हेरफेर करना
स्ट्रिंग केस में हेरफेर करना कई कार्यों के लिए आसान है, जिनमें शामिल हैं दस्तावेज़ीकरण के साथ काम करना. आप उपयोग कर सकते हैं कम करना लोअरकेसिंग के लिए कार्य, टूअपर अपरकेसिंग के लिए फ़ंक्शन, और ToTitle शीर्षक आवरण के लिए समारोह।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)समारोहमुख्य() {
स := "यह एक टेस्ट स्ट्रिंग है।"
fmt. प्रिंट्लन (स्ट्रिंग्स। ToLower (ओं)) // यह एक टेस्ट स्ट्रिंग है।
fmt. प्रिंट्लन (स्ट्रिंग्स। टॉपर (एस)) // यह एक टेस्ट स्ट्रिंग है।
fmt. प्रिंट्लन (स्ट्रिंग्स। टोटाइटल (एस)) // यह एक टेस्ट स्ट्रिंग है।
}
गो में स्ट्रिंग बिल्डिंग
स्ट्रिंग बिल्डर्स एक प्रकार है जो गो में कुशल संयोजन की अनुमति देता है। बाइट्स। बफर प्रकार आमतौर पर इस्तेमाल किए जाने वाले स्ट्रिंग बिल्डरों में से एक है। बाइट्स। बफर विधि संचालन के लिए पढ़ने और लिखने के तरीकों के साथ बाइट्स के बढ़ने योग्य बफर को लागू करती है, कुशल स्ट्रिंग के लिए नई प्रतियां बनाने की आवश्यकता के बिना अनुमति देती है, इसके विपरीत + ऑपरेशन और जोड़ना समारोह।
आयात (
"एफएमटी"
"स्ट्रिंग्स"
)समारोहमुख्य() {
वर बी तार। निर्माता// बिल्डर को कुछ तार लिखें
बी। राइटस्ट्रिंग("यह ")
बी। राइटस्ट्रिंग("है ")
बी। राइटस्ट्रिंग("ए ")
बी। राइटस्ट्रिंग("परीक्षा ")
बी। राइटस्ट्रिंग("डोरी।")// निर्माता की लंबाई प्राप्त करें
fmt. प्रिंटलाइन (बी। लेन ())// बिल्डर को एक स्ट्रिंग में बदलें
स्ट्र: = बी। डोरी()
fmt. प्रिंट्लन (एसटीआर)// बिल्डर को रीसेट करें
बी। रीसेट()// बिल्डर को कुछ और स्ट्रिंग्स लिखें
बी। राइटस्ट्रिंग("यह ")
बी। राइटस्ट्रिंग("है ")
बी। राइटस्ट्रिंग("एक और ")
बी। राइटस्ट्रिंग("परीक्षा ")
बी। राइटस्ट्रिंग("डोरी।")// बिल्डर की क्षमता प्राप्त करें
fmt. प्रिंटलाइन (बी। कैप ())
// बिल्डर को फिर से एक स्ट्रिंग में बदलें
स्ट्र = बी। डोरी()
fmt. प्रिंट्लन (एसटीआर)
}
मुख्य फ़ंक्शन दर्शाता है कि आप इसका उपयोग कैसे कर सकते हैं तार। निर्माता कुशल स्ट्रिंग बिल्डिंग के लिए टाइप करें। राइटस्ट्रिंग की विधि तार। निर्माता प्रकार तारों के अनुक्रम को एक दूसरे तक बढ़ाता है, और लेन विधि निर्मित स्ट्रिंग की लंबाई लौटाती है।
डोरी विधि निर्माता की सामग्री को एक स्ट्रिंग में परिवर्तित करती है, और रीसेट मेथड अतिरिक्त स्ट्रिंग बिल्डिंग के लिए बिल्डर को रीसेट करता है।
टोपी विधि निर्माता की क्षमता लौटाती है। यह वर्तमान स्थान है जिसे गो ने स्ट्रिंग के लिए आवंटित किया है।
गो में स्ट्रिंग ट्रिमिंग
तार पैकेज स्ट्रिंग्स को ट्रिम करने के लिए कार्यक्षमता भी प्रदान करता है काट-छांट करना, ट्रिमबाएं, ट्रिमउपसर्ग, ट्रिम राइट, ट्रिमस्पेस, और ट्रिमसफिक्स कार्य करता है।
आयात (
"स्ट्रिंग्स"
"एफएमटी"
)समारोहमुख्य() {
// पूरी स्ट्रिंग
स := "हैलो वर्ल्ड!"// ट्रिम के लिए तत्व
उपसर्ग := "नमस्ते"
प्रत्यय := "दुनिया!"// निर्दिष्ट ट्रिम सेट द्वारा स्ट्रिंग को ट्रिम करें
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिम (एस, "!"))// स्ट्रिंग के आरंभ और अंत में रिक्त स्थान द्वारा ट्रिम करें
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिमस्पेस)// निर्दिष्ट ट्रिम सेट द्वारा बाएं स्ट्रिंग से ट्रिम करें
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिमलेफ्ट (एस, "नमस्ते"))// निर्दिष्ट ट्रिम सेट द्वारा सही स्ट्रिंग से बाहर ट्रिम करें
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिमराइट (एस, "दुनिया!"))// एक उपसर्ग को ट्रिम करता है
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिमप्रिफ़िक्स (s, उपसर्ग))
// एक विशिष्ट प्रत्यय को काटता है
fmt. प्रिंट्लन (स्ट्रिंग्स। ट्रिमसफिक्स (एस, प्रत्यय))
}
मुख्य फ़ंक्शन दर्शाता है कि आप ट्रिमिंग के लिए फ़ंक्शन का उपयोग कैसे कर सकते हैं। विभिन्न कार्य ट्रिम करते हैं एस स्ट्रिंग विभिन्न तरीकों से:
आप गो में स्ट्रिंग्स को फॉर्मेट कर सकते हैं
गो मानक पुस्तकालय स्ट्रिंग स्वरूपण के लिए fmt पैकेज भी प्रदान करता है। fmt पैकेज गो में कुशल स्ट्रिंग स्वरूपण के लिए सी-शैली स्वरूपण क्रियाओं का उपयोग करता है।