Swift में सबस्ट्रिंग चेक करना: कोड उदाहरणों के साथ पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में स्ट्रिंग में सबस्ट्रिंग कैसे चेक करें? पूरी गाइड

\n\n

नमस्ते, डेवलपर साथी! अगर आपने कभी Swift में कोड लिखा है और सोचा है, "एक स्ट्रिंग के अंदर दूसरा शब्द कैसे ढूंढूं?", तो आप सही जगह पर हैं। यह टॉपिक Stack Overflow पर सबसे लोकप्रिय सवालों में से एक है (अंग्रेज़ी वर्शन को लाखों व्यूज़ मिले हैं)। और यह कोई संयोग नहीं है: स्ट्रिंग के साथ काम करना एक बुनियादी स्किल है, जिसके बिना कोई भी ऐप पूरा नहीं होता।

\n\n

इस आर्टिकल में हम स्ट्रिंग में सबस्ट्रिंग चेक करने के सभी तरीकों को समझेंगे। सबसे आसान contains() से लेकर case-insensitive सर्च और रेगुलर एक्सप्रेशन जैसी एडवांस तकनीकों तक। चलिए शुरू करते हैं!

\n\n

1. सबसे आसान तरीका: contains() मेथड

\n\n

Swift 1.0 से ही, String टाइप में बिल्ट-इन contains() मेथड उपलब्ध है। यह बहुत आसान और तेज़ काम करता है।

\n\n
let fullString = "नमस्ते, Swift की दुनिया!"\nlet searchString = "Swift"\n\nif fullString.contains(searchString) {\n    print("हाँ, स्ट्रिंग में '\\(searchString)' मौजूद है")\n} else {\n    print("नहीं, मौजूद नहीं है")\n}\n// आउटपुट: हाँ, स्ट्रिंग में 'Swift' मौजूद है
\n\n

ध्यान दें: contains() मेथड केस-सेंसिटिव है। यानी "swift" को "Swift" स्ट्रिंग में नहीं ढूंढा जाएगा। लेकिन हम इसे आगे ठीक करेंगे।

\n\n

2. केस-इनसेंसिटिव सर्च: localizedCaseInsensitiveContains()

\n\n

अक्सर हमें बड़े-छोटे अक्षरों की परवाह किए बिना शब्द ढूंढना होता है। इसके लिए एक स्पेशल मेथड है जो यूज़र की लोकेल के हिसाब से काम करता है।

\n\n
let text = "Swift में आपका स्वागत है"\nlet search = "swift"\n\nif text.localizedCaseInsensitiveContains(search) {\n    print("मिल गया! केस कोई मायने नहीं रखता।")\n} else {\n    print("नहीं मिला")\n}\n// आउटपुट: मिल गया! केस कोई मायने नहीं रखता।
\n\n

यह मेथड डिवाइस की करंट लोकेल का उपयोग करता है, जो खास नियमों वाली भाषाओं (जैसे तुर्की, जहाँ 'i' और 'I' अलग अक्षर हैं) के लिए बहुत ज़रूरी है।

\n\n

3. लोकेल के साथ सर्च: localizedStandardContains()

\n\n

एक और उपयोगी मेथड है localizedStandardContains()। यह उसी तरह सर्च करता है जैसे iOS का स्टैंडर्ड सर्च (जैसे Spotlight या Finder) करता है।

\n\n
let fileName = "छुट्टियों_की_फोटो_2024.jpg"\nlet query = "छुट्टियों"\n\nif fileName.localizedStandardContains(query) {\n    print("फ़ाइल मिल गई!")\n}\n// आउटपुट: फ़ाइल मिल गई!
\n\n

यह मेथड ऑटोमैटिकली स्ट्रिंग को नॉर्मलाइज़ करता है, डायक्रिटिकल मार्क्स हटाता है (जैसे 'é' = 'e') और केस-इनसेंसिटिव काम करता है। यूज़र इंटरफ़ेस में सर्च के लिए यह परफेक्ट है।

\n\n

4. क्लासिक तरीका: range(of:)

\n\n

कभी-कभी सिर्फ यह जानना काफी नहीं होता कि सबस्ट्रिंग मौजूद है या नहीं, बल्कि उसकी पोज़ीशन भी चाहिए होती है। यहाँ range(of:) काम आता है। यह एक ऑप्शनल रेंज (Range<String.Index>?) रिटर्न करता है।

\n\n
let phrase = "pythonlib.ru पर Swift सीखें"\nlet word = "Swift"\n\nif let range = phrase.range(of: word) {\n    print("सबस्ट्रिंग पोज़ीशन पर मिली: \\(range.lowerBound)")\n    // स्ट्रिंग का एक हिस्सा निकाल भी सकते हैं\n    let extracted = phrase[range]\n    print("निकाला गया: \\(extracted)")\n} else {\n    print("सबस्ट्रिंग नहीं मिली")\n}
\n\n

range के साथ केस-इनसेंसिटिव सर्च के लिए .caseInsensitive ऑप्शन का उपयोग करें:

\n\n
if let range = phrase.range(of: "swift", options: .caseInsensitive) {\n    print("केस-इनसेंसिटिव मिला: \\(phrase[range])")\n}
\n\n

5. स्ट्रिंग की शुरुआत और अंत जांचना

\n\n

कभी-कभी यह जांचना ज़रूरी होता है कि स्ट्रिंग किसी खास शब्द से शुरू होती है या खत्म होती है। इसके लिए स्पेशल मेथड हैं:

\n\n
let url = "https://pythonlib.ru"\n\nif url.hasPrefix("https://") {\n    print("यह एक सुरक्षित URL है")\n}\n\nif url.hasSuffix(".ru") {\n    print("रूसी डोमेन")\n}
\n\n

दोनों मेथड केस-सेंसिटिव हैं।

ब्लॉग

पुस्तक अनुशंसाएँ