Go में string बाइट्स का एक अपरिवर्तनीय क्रम होती है। ज़रूरी नहीं है कि ये बाइट्स अक्षरों को ही दर्शाएँ।
स्ट्रिंग लिटरल दोहरे उद्धरण चिह्नों के बीच लिखा जाता है:
const name = "Jane"
+ ऑपरेटर की मदद से स्ट्रिंग को जोड़ा जा सकता है:
"Jane" + " " + "Austen"
// => "Jane Austen"
कुछ खास अक्षरों को बैकस्लैश लगाकर लिखना पड़ता है, जैसे स्ट्रिंग में टैब के लिए \t और नई लाइन के लिए \n।
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
strings पैकेज में स्ट्रिंग पर काम करने के लिए बहुत उपयोगी फंक्शन मौजूद हैं।
स्ट्रिंग फंक्शन के बारे में अधिक जानकारी के लिए strings पैकेज का दस्तावेज़ीकरण देखिए।
यहाँ कुछ उदाहरण दिए गए हैं:
import "strings"
// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"
// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"
पास में ही "Tech Palace" नाम की एक घरेलू उपकरणों की दुकान है। दुकान के मालिक ने हाल ही में एक बड़ा डिस्प्ले लगवाया है। इसका उपयोग वे मार्केटिंग संदेशों के लिए करेंगे, और जब ग्राहक प्रवेश द्वार पर अपना लॉयल्टी कार्ड स्कैन करेंगे, तब यह एक खास स्वागत संदेश भी दिखाएगा। इस डिस्प्ले में बहुत सारी छोटी LED लाइटें लगी हैं और यह टेक्स्ट की कई लाइनें दिखा सकता है।
नए डिस्प्ले के लिए टेक्स्ट बनाने वाले कोड में दुकान के मालिक को आपकी मदद चाहिए।
जो अधिकतर ग्राहक अपना लॉयल्टी कार्ड स्कैन करते हैं, उनके लिए दुकान के मालिक चाहते हैं कि डिस्प्ले पर पहले "Welcome to the Tech Palace," दिखे और उसके बाद ग्राहक का नाम बड़े अक्षरों में दिखे।
WelcomeMessage फंक्शन लिखिए जो ग्राहक का नाम एक string आर्गुमेंट के रूप में लेता है और मनचाहा संदेश एक string के रूप में लौटाता है।
WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY
जो निष्ठावान ग्राहक दुकान से बहुत कुछ खरीदते हैं, उनके लिए मालिक चाहते हैं कि स्वागत संदेश से पहले और बाद में सितारों की एक लाइन जोड़कर डिस्प्ले को और आकर्षक बनाया जाए। उन्हें अभी तय नहीं है कि लाइनों में कितने सितारे होने चाहिए, इसलिए वे चाहते हैं कि यह संख्या बदली जा सके।
AddBorder नाम का फंक्शन लिखिए जो एक स्वागत संदेश (एक string) और हर लाइन में सितारों की संख्या (टाइप int) को आर्गुमेंट के रूप में लेता है।
इसे ऐसी string लौटानी चाहिए जिसमें 3 लाइनें हों: पहले चाही गई संख्या में सितारों की एक लाइन, फिर वही स्वागत संदेश जो इसे दिया गया था, और अंत में सितारों की एक और लाइन।
AddBorder("Welcome!", 10)
इसे निम्नलिखित लौटाना चाहिए:
**********
Welcome!
**********
यह नया डिस्प्ले लगाने से पहले दुकान पर एक ऐसा ही डिस्प्ले था जो केवल ऐसी स्थिर लाइनें दिखा सकता था जिन्हें बदला नहीं जा सकता था। मालिक नए डिस्प्ले पर पुराने कुछ मार्केटिंग संदेश फिर से इस्तेमाल करना चाहते हैं। लेकिन इन संदेशों के डेटा में पहले से सितारों का बॉर्डर और कुछ अनचाही खाली जगह शामिल है। आपको इन संदेशों को साफ़ करना है ताकि इन्हें फिर से इस्तेमाल किया जा सके।
CleanUpMessage फंक्शन लिखिए जो पुराना मार्केटिंग संदेश एक स्ट्रिंग के रूप में लेता है।
फंक्शन को सबसे पहले टेक्स्ट से सारे सितारे हटाने चाहिए, और उसके बाद बचे हुए टेक्स्ट के शुरू और अंत की खाली जगह हटा देनी चाहिए।
इसके बाद फंक्शन को साफ़ किया गया संदेश लौटाना चाहिए।
message := `
**************************
* BUY NOW, SAVE 10% *
**************************
`
CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट166 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।