उदाहरण के साथ VB.NET सबस्ट्रिंग विधि
⚡ स्मार्ट सारांश
VB.Net सबस्ट्रिंग extracयह विधि एक प्रारंभिक इंडेक्स और वैकल्पिक लंबाई निर्दिष्ट करके स्ट्रिंग का एक भाग प्राप्त करती है। यह विधि स्ट्रिंग वर्ग से संबंधित है, वर्णों की गणना शून्य से करती है, और मूल स्ट्रिंग को बदले बिना एक नई स्ट्रिंग लौटाती है।
सबस्ट्रिंग क्या है?
सबस्ट्रिंग फ़ंक्शन का उपयोग किसी निर्दिष्ट स्ट्रिंग के एक भाग को प्राप्त करने के लिए किया जाता है। यह विधि स्ट्रिंग क्लास में परिभाषित है। Microsoft VB.Netआपको वह प्रारंभिक इंडेक्स निर्दिष्ट करना होगा जहाँ से स्ट्रिंग निकाली जाएगी।tracस्ट्रिंग समाप्त हो जाएगी।tracउस इंडेक्स से लेकर आपके द्वारा निर्दिष्ट लंबाई तक की गणना की जाएगी।
पूर्व से पहलेtracटेक्स्ट को टिंग करते समय, सबस्ट्रिंग विधि द्वारा अपेक्षित सिंटैक्स को समझना सहायक होता है।
सबस्ट्रिंग का सिंटैक्स
फ़ंक्शन दो तर्क स्वीकार करता है जैसा कि निम्नलिखित सिंटैक्स में दिखाया गया है:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
यहाँ,
- ByVal कीवर्ड पास-बाय-वैल्यू को दर्शाता है, जो फ़ंक्शन में तर्कों को पास करने का एक तंत्र है।
- start_Index वह इंडेक्स है जिससे सबस्ट्रिंग प्राप्त की जाएगी।
- sub_length, start_Index से लेकर उस लंबाई तक को दर्शाता है जहाँ तक स्ट्रिंग कॉपी की जाएगी। यह लंबाई वर्णों की संख्या में मापी जाती है। फ़ंक्शन ex लौटाएगा।tracटेड सबस्ट्रिंग।
प्रारंभिक सूचकांक शून्य-आधारित है, इसलिए स्ट्रिंग का पहला अक्षर स्थिति 1 के बजाय स्थिति 0 पर स्थित होता है।
सिंटैक्स को परिभाषित करने के बाद, निम्नलिखित उदाहरण एक कंसोल एप्लिकेशन के अंदर सबस्ट्रिंग विधि के कार्य को दर्शाते हैं।
उदाहरण
चरण 1) एक नया कंसोल एप्लिकेशन बनाएं।
चरण 2) इसमें निम्नलिखित कोड जोड़ें:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
चरण 3) कोड को निष्पादित करने के लिए टूलबार से स्टार्ट बटन पर क्लिक करें। आपको निम्नलिखित परिणाम प्राप्त होना चाहिए:
हमने निम्नलिखित कोड का उपयोग किया है:
का स्पष्टीकरण Code:
- Module1 नामक एक मॉड्यूल बनाना.
- मुख्य उप-प्रक्रिया प्रारंभ करना।
- st नामक एक स्ट्रिंग वेरिएबल को परिभाषित करना और उसे मान असाइन करना Guruइसके लिए 99 का अनुपात है।
- स्ट्रिंग 'st' के सबस्ट्रिंग के रूप में 'subst' नामक एक स्ट्रिंग वेरिएबल को परिभाषित करना, जो इंडेक्स 0 से शुरू होकर 4 वर्णों की लंबाई तक का हो।
- कंसोल पर कुछ पाठ और उपरोक्त सबस्ट्रिंग को प्रिंट करना।
- कंसोल विंडो को कुछ समय के लिए रोककर उपयोगकर्ता द्वारा इसे बंद करने की कार्रवाई की प्रतीक्षा करना।
- मुख्य उप-प्रक्रिया का अंत.
- मॉड्यूल का अंत.
एक तर्क
अगर हम फ़ंक्शन को सिर्फ़ एक तर्क देते हैं तो क्या होगा? फ़ंक्शन उस इंडेक्स से शुरू होने वाले स्ट्रिंग के सभी डेटा को कॉपी कर देगा। ऐसा होता है कि सबस्ट्रिंग फ़ंक्शन आंतरिक रूप से उस इंडेक्स पर सभी स्ट्रिंग डेटा के साथ-साथ उस इंडेक्स के बाद आने वाले डेटा को भी कॉपी कर लेता है। उदाहरण के लिए:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
कोड चलाने के लिए स्टार्ट बटन पर क्लिक करें। यह निम्नलिखित परिणाम देगा:
सबस्ट्रिंग फ़ंक्शन ने 99 लौटाया। हमने फ़ंक्शन को पैरामीटर 4 पास किया, जिसका अर्थ है कि यह गणना करना शुरू कर देगा।tracस्ट्रिंग के इंडेक्स 4 पर मौजूद कैरेक्टर से लेकर स्ट्रिंग के अंत तक का सबस्ट्रिंग ज्ञात कीजिए। 9 स्ट्रिंग के इंडेक्स 4 पर मौजूद कैरेक्टर है। Guru99, इसलिए पूर्वtracवहीं से शुरुआत हुई।
किसी एक इंडेक्स से ट्रिम करने के अलावा, सबस्ट्रिंग विधि स्ट्रिंग के बीच में स्थित वर्णों को भी लक्षित कर सकती है।
मध्य वर्ण
हमारे लिए प्रश्न में स्ट्रिंग के मध्य अक्षर प्राप्त करना भी संभव है। इस मामले में, हमें केवल आरंभिक इंडेक्स और स्ट्रिंग की लंबाई प्रदान करनी होगी जिसकी हमें आवश्यकता है। निम्नलिखित उदाहरण में, हम इंडेक्स 2 से निर्दिष्ट स्ट्रिंग का एक सबस्ट्रिंग प्राप्त कर रहे हैं और स्ट्रिंग की लंबाई 2 अक्षर होगी:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
कोड चलाने के लिए टूलबार से स्टार्ट बटन पर क्लिक करें। आपको निम्न परिणाम मिलेगा:
ऊपर दिए गए उदाहरण में, सबस्ट्रिंग फ़ंक्शन ने ru लौटाया। हमने फ़ंक्शन को पैरामीटर (2, 2) पास किए। पहला 2 फ़ंक्शन को एक्सप्रेशन शुरू करने का निर्देश देता है।tracपहला इंडेक्स 2 से सबस्ट्रिंग का चयन करता है, जबकि दूसरा 2 फ़ंक्शन को केवल 2 वर्णों की लंबाई वाली सबस्ट्रिंग लौटाने का निर्देश देता है। इसका मतलब है कि पूर्वtracसबस्ट्रिंग का विभाजन स्ट्रिंग के इंडेक्स 2 पर स्थित एलिमेंट से शुरू होना चाहिए। Guru99, जो कि r है। चूंकि लौटाए गए सबस्ट्रिंग की लंबाई केवल 2 वर्णों की होनी चाहिए, इसलिए extracयह प्रक्रिया 'u' से आगे नहीं बढ़ पाएगी, इसलिए इसने 'ru' लौटाया।
एक चार
हम स्ट्रिंग से एक सिंगल कैरेक्टर प्राप्त करने के लिए सबस्ट्रिंग फ़ंक्शन का उपयोग कर सकते हैं। ऐसे मामले में, आपके लिए आवंटन करना ज़रूरी है लेकिन कैरेक्टर को सीधे एक्सेस किया जा सकता है। यह थोड़ा तेज़ है। निम्न उदाहरण दो तरीकों को प्रदर्शित करता है जिसके माध्यम से हम इसे प्राप्त कर सकते हैं:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
कोड चलाने के लिए स्टार्ट बटन पर क्लिक करें। आपको निम्न परिणाम मिलेगा:
हमने निम्नलिखित कोड का उपयोग किया है:
का स्पष्टीकरण Code:
- Module1 नामक एक मॉड्यूल बनाना.
- मुख्य उप-प्रक्रिया प्रारंभ करना।
- st नामक एक स्ट्रिंग वेरिएबल को परिभाषित करना और उसे मान असाइन करना Guruइसके लिए 99 का अनुपात है।
- mid1 नामक स्ट्रिंग वैरिएबल को परिभाषित करना और स्ट्रिंग st के इंडेक्स 1 पर वर्ण प्राप्त करना। यह वर्ण वैरिएबल mid1 को असाइन किया जाएगा।
- कंसोल पर उपरोक्त अक्षर मुद्रित करना।
- mid2 नामक स्ट्रिंग वैरिएबल को परिभाषित करना और स्ट्रिंग st से 1 की लंबाई के साथ इंडेक्स 1 पर वर्ण प्राप्त करना। 1 की लंबाई का मतलब है कि यह शुरुआती इंडेक्स पर समान वर्ण लौटाएगा। गिनती आपके द्वारा निर्दिष्ट शुरुआती इंडेक्स से शुरू होती है। यह वर्ण वैरिएबल mid2 को असाइन किया जाएगा।
- कंसोल पर उपरोक्त अक्षर मुद्रित करना।
- कंसोल विंडो को कुछ समय के लिए रोककर उपयोगकर्ता द्वारा इसे बंद करने की कार्रवाई की प्रतीक्षा करना।
- मुख्य उप-प्रक्रिया का अंत.
- मॉड्यूल का अंत.
एक बार जब आप सहज हो जाएंtracसबस्ट्रिंग का उपयोग करते समय, यह जानना महत्वपूर्ण है कि इस विधि द्वारा उत्पन्न होने वाली त्रुटियों को कैसे संभाला जाए।
सबस्ट्रिंग में होने वाली आम गलतियाँ और उनसे बचने के तरीके
सबस्ट्रिंग विधि में पास किए जाने वाले मानों के प्रति सख्त नियम हैं। जब कोई आर्गुमेंट स्ट्रिंग की सीमा से बाहर होता है, तो VB.Net एक आर्गुमेंटआउटऑफरेंजएक्सेप्शन उत्पन्न करता है और प्रोग्राम को रनटाइम पर रोक देता है। नियमों को समझना इस आम गलती से बचने में सहायक होता है।
यह विधि तीन स्थितियों में अपवाद उत्पन्न करती है:
- start_Index एक ऋणात्मक संख्या है।
- start_Index स्ट्रिंग की लंबाई से अधिक है।
- start_Index और sub_length का योग स्ट्रिंग के अंत से आगे की दूरी को दर्शाता है।
एक आम गलती यह है कि IndexOf फ़ंक्शन के परिणाम को पहले जांचे बिना ही उपयोग कर लिया जाता है। जब IndexOf को वर्ण नहीं मिलता, तो यह -1 लौटाता है, और Substring को -1 पास करने पर अपवाद उत्पन्न हो जाता है। निम्नलिखित कोड इससे बचाव करता है:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
कॉल करने से पहले इंडेक्स को मान्य करने से आपका एप्लिकेशन सुचारू रूप से चलता रहता है, भले ही इनपुट स्ट्रिंग में वह वर्ण न हो जिसकी आप अपेक्षा करते हैं।
किसी वर्ण से पहले या बाद में एक सबस्ट्रिंग प्राप्त करना
एक सामान्य कार्य है पूर्वtracकिसी विशिष्ट अक्षर से पहले या बाद में आने वाले टेक्स्ट को अलग करना, जैसे कि ईमेल पते को @ चिह्न पर विभाजित करना। VB.Net इसके लिए कोई समर्पित फ़ंक्शन प्रदान नहीं करता है, लेकिन आप इसे प्राप्त करने के लिए IndexOf को Substring के साथ जोड़ सकते हैं।
किसी अक्षर से पहले का पाठ: कैरेक्टर का पता लगाने के लिए IndexOf फ़ंक्शन को कॉल करें, फिर उस इंडेक्स को Substring फ़ंक्शन की लंबाई के रूप में पास करें:
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
यह कोड गुरु99 को प्रिंट करता है, जो स्ट्रिंग का वह हिस्सा है जो @ चिह्न से पहले आता है।
किसी अक्षर के बाद का पाठ: इंडेक्स में 1 जोड़ें और सबस्ट्रिंग को स्ट्रिंग के अंत तक चलने दें:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
यह example.com लौटाता है। जब कोई अक्षर एक से अधिक बार आता है, तो पहले के बजाय अंतिम बार आने वाले अक्षर से शुरू करने के लिए IndexOf के स्थान पर LastIndexOf का उपयोग करें।
सबस्ट्रिंग बनाम बाएँ, दाएँ और मध्य फ़ंक्शन
विजुअल बेसिक अपने पुराने संस्करणों से तीन पुरानी स्ट्रिंग फ़ंक्शन विरासत में लेता है: लेफ्ट, राइट और मिड। ये फ़ंक्शन इसमें मौजूद हैं। Microsoft.VisualBasic नेमस्पेस का उपयोग किया जाता है और यह क्लासिक VB से आने वाले डेवलपर्स के लिए अधिक परिचित लग सकता है।
- बाएँ(स्ट्रिंग, n) यह स्ट्रिंग के पहले n अक्षर लौटाता है।
- दायाँ(स्ट्रिंग, n) यह स्ट्रिंग के अंतिम n अक्षर लौटाता है।
- मध्य(स्ट्रिंग, प्रारंभ, लंबाई) यह सबस्ट्रिंग की तरह ही शुरुआती स्थिति से एक हिस्सा लौटाता है।
मुख्य अंतर यह है कि वे पोजीशन की गणना कैसे करते हैं। मिड फ़ंक्शन एक-आधारित है, इसलिए पहला कैरेक्टर पोजीशन 1 पर होता है, जबकि सबस्ट्रिंग विधि शून्य-आधारित है और गणना 0 से शुरू करती है। सबस्ट्रिंग मानक .NET दृष्टिकोण है और सभी .NET भाषाओं में समान रूप से काम करता है, इसलिए नए कोड के लिए यही अनुशंसित विकल्प है। लेफ्ट, राइट और मिड को पुराने विजुअल बेसिक प्रोजेक्ट्स के रखरखाव के लिए आरक्षित रखें।






