String में कई मेथड हैं जिनकी मदद से स्ट्रिंग में बदलाव किए जा सकते हैं। इन मेथड को स्ट्रिंग पर ही कॉल किया जाता है, और अक्सर एक ही स्ट्रिंग पर कई काम करने के लिए इन्हें एक के बाद एक जोड़ा जाता है।
नीचे कुछ सबसे आम मेथड की सूची दी गई है। सभी मेथड की पूरी सूची के लिए String API दस्तावेज़ देखिए।
upcase मेथड एक नई स्ट्रिंग लौटाता है जिसमें सभी अक्षर बड़े अक्षरों में बदल दिए जाते हैं।
"hello".upcase
# => "HELLO"
downcase मेथड एक नई स्ट्रिंग लौटाता है जिसमें सभी अक्षर छोटे अक्षरों में बदल दिए जाते हैं।
"HELLO".downcase
# => "hello"
Crystal में स्ट्रिंग के कुछ हिस्सों को बदलने के लिए मेथड हैं। इन्हें sub (प्रतिस्थापन) और gsub (वैश्विक प्रतिस्थापन) कहा जाता है।
ये मेथड पहले आर्गुमेंट के रूप में एक स्ट्रिंग, अक्षर या रेजेक्स ले सकते हैं, और दूसरे आर्गुमेंट के रूप में एक स्ट्रिंग या अक्षर ले सकते हैं। पहला आर्गुमेंट स्ट्रिंग का वह हिस्सा होता है जिसे बदला जाएगा, और दूसरा आर्गुमेंट उसकी जगह लगने वाली चीज़ होती है। Char और रेजेक्स को आगे के कॉन्सेप्ट में समझाया जाएगा।
sub मेथड स्ट्रिंग में पहले आर्गुमेंट के पहले मिलने वाले हिस्से को दूसरे आर्गुमेंट से बदल देता है।
"hello".sub("l", "r")
# => "herlo"
gsub मेथड sub की तरह ही काम करता है, लेकिन यह पहले आर्गुमेंट के सभी मिलने वाले हिस्सों को दूसरे आर्गुमेंट से बदल देता है।
"hello".gsub("l", "r")
# => "herro"
chomp और strip की मदद से स्ट्रिंग से अनचाहे अक्षर हटाए जा सकते हैं।
chomp मेथड डिफॉल्ट रूप से स्ट्रिंग के अंत से अंतिम \r, \n या \r\n अक्षर हटा देता है। अगर मेथड को किसी आर्गुमेंट के साथ कॉल किया जाए, तो यह स्ट्रिंग के अंत से दी गई वैल्यू हटा देता है, बशर्ते वह वैल्यू स्ट्रिंग के अंत में मौजूद हो।
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
डिफॉल्ट रूप से strip मेथड स्ट्रिंग के शुरू और अंत से सारी व्हाइटस्पेस हटा देता है। अगर मेथड को किसी आर्गुमेंट के साथ कॉल किया जाए, तो यह स्ट्रिंग के शुरू और अंत से उस आर्गुमेंट को हटा देता है, बशर्ते वह आर्गुमेंट स्ट्रिंग के शुरू या अंत में मौजूद हो।
" hello ".strip
# => "hello"
index मेथड की मदद से स्ट्रिंग में किसी अक्षर का इंडेक्स पता किया जा सकता है। index मेथड आर्गुमेंट के रूप में एक String, Char या रेजेक्स लेता है। यह एक वैकल्पिक दूसरा आर्गुमेंट भी ले सकता है, जो बताता है कि खोज किस इंडेक्स से शुरू करनी है। index मेथड आर्गुमेंट जहाँ पहली बार मिलता है, उसका इंडेक्स लौटाता है।
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
आप delete_at मेथड की मदद से स्ट्रिंग से कोई अक्षर हटा सकते हैं। delete_at मेथड आर्गुमेंट के रूप में एक इंडेक्स लेता है और उस इंडेक्स पर मौजूद अक्षर हटा देता है।
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
insert मेथड की मदद से किसी खास इंडेक्स पर एक स्ट्रिंग डाली जा सकती है। insert मेथड पहले आर्गुमेंट के रूप में एक इंडेक्स और दूसरे आर्गुमेंट के रूप में एक स्ट्रिंग लेता है। insert मेथड एक नई स्ट्रिंग लौटाता है जिसमें दूसरा आर्गुमेंट उस इंडेक्स पर डाल दिया जाता है।
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
इस अभ्यास में आप हाई स्कूल के प्रेमी जोड़ों को सोशल मीडिया पर अपना प्यार जताने में मदद करेंगे। इसके लिए आप उनके इनिशियल के साथ एक ASCII दिल बनाएँगे:
❤ J. + M. ❤
HighSchoolSweetheart.clean_up_name मेथड लागू कीजिए।
यह एक नाम लेता है और उसमें से सभी - अक्षर हटाकर उनकी जगह एक स्पेस लगाता है।
इसे नाम के शुरू और अंत से कोई भी खाली स्थान भी हटा देना चाहिए।
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
HighSchoolSweetheart.first_letter मेथड लागू कीजिए।
यह एक नाम लेता है और उसका पहला अक्षर लौटाता है।
पिछले चरण में आपने जो HighSchoolSweetheart.clean_up_name बनाया था, उसका दोबारा इस्तेमाल ज़रूर कीजिए।
HighSchoolSweetheart.first_letter("Jane")
# => "J"
HighSchoolSweetheart.initial मेथड लागू कीजिए।
यह एक नाम लेता है और उसका पहला अक्षर बड़ा करके उसके बाद एक बिंदु लगाकर लौटाता है।
पिछले चरण में आपने जो HighSchoolSweetheart.first_letter बनाया था, उसका दोबारा इस्तेमाल ज़रूर कीजिए।
HighSchoolSweetheart.initial("Robert")
# => "R."
HighSchoolSweetheart.pair मेथड लागू कीजिए।
यह दो नाम लेता है और इनिशियल लौटाता है, जिनके दोनों तरफ इमोजी दिल हों।
पिछले चरण में आपने जो HighSchoolSweetheart.initial बनाया था, उसका दोबारा इस्तेमाल ज़रूर कीजिए।
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Exercism पर साइन अप कीजिए और Crystal को 26 कॉन्सेप्ट142 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।