2014-09-21 8 views
10

मैं इस सवाल में की तरह एक ही समस्या है:स्विफ्ट: स्ट्रिंग में स्ट्रिंग है (एनएसएसटींग का उपयोग किए बिना)?

How do I check if a string contains another string in Swift?

लेकिन अब कुछ ही महीने बाद मुझे आश्चर्य है कि अगर यह NSString का उपयोग किए बिना किया जा सकता है? मैं अच्छा और सरल शामिल है-विधि ठीक होगी। मैंने वेब और दस्तावेज़ीकरण की खोज की लेकिन मुझे कुछ भी नहीं मिला!

+1

की संभावित डुप्लिकेट [मैं इसकी जांच कैसे करते हैं कि कोई स्ट्रिंग स्विफ्ट में एक और स्ट्रिंग है?] (Http://stackoverflow.com/questions/24034043/how-do-i-check-if-a-string -contains-another-string-in-swift) –

उत्तर

27

एक ही रास्ता है, बस स्विफ्ट वाक्य रचना के साथ:

let string = "This is a test. This is only a test" 

if string.rangeOfString("only") != nil { 
    println("yes") 
} 

स्विफ्ट 3.0 के लिए

if str.range(of: "abc") != nil{ 
    print("Got the string") 
} 
+1

"is" के बारे में क्या है, क्या मुझे अंतिम "है" मिल सकता है? – Zam

+0

@Zam उस स्थिति में, यह 'is' के लिए पहला संयोग/मैच लौटाएगा, और यदि आप 'रेंज' प्रिंट करते हैं तो आपको '2 .. <4' {^_^} -->' जैसे कुछ मिलता है यदि रेंज = string.rangeOfString (" है ") {प्रिंट (रेंज)} ' – eMdOS

+0

क्या सिंटैक्स अभी भी स्विफ्ट 2 में उपयोग किया जाता है? –

0

मैं स्विफ्ट 3.0 के लिए स्ट्रिंग पर एक विस्तार लिखा था ताकि मैं बस कह सकते हैं absoluteString.contains(string: "/kredit/")

extension String { 
    public func contains(string: String)-> Bool { 
     return self.rangeOfString(string) != nil 
    } 

}

2

String वास्तव में StringProtocol के माध्यम से एक "शामिल" फ़ंक्शन प्रदान करता है।
कोई विस्तार जो भी जरूरत:

let str = "asdf" 
print(str.contains("sd") ? "yep" : "nope") 

enter image description here

https://developer.apple.com/reference/swift/string https://developer.apple.com/documentation/swift/stringprotocol


आप अपने स्ट्रिंग एक विशिष्ट नमूने का मिलान करता है, तो जाँच करने के लिए चाहते हैं, तो मैं NSHipster लेख सिफारिश कर सकते हैं NSRegularExpressions के बारे में: http://nshipster.com/nsregularexpression/

विकल्प के उपयोग को प्रदर्शित करने के लिए
+0

यह जांचता है कि स्ट्रिंग में एक निश्चित चरित्र है या नहीं! –

+1

@EmilMarashliev यह सच है। लेकिन इसके अलावा आप 'स्ट्रिंगप्रोटोकॉल' के अनुरूप कुछ भी जांच सकते हैं - इसलिए यह 'स्ट्रिंग' के लिए भी काम करता है। –

+0

हा, आप पूरी तरह से सही हैं 'स्ट्रिंगप्रोटोकॉल' से आता है https://developer.apple.com/documentation/swift/stringprotocol/2923423- इसमें 'श्रेणी (::) 'से अधिक सुविधाजनक और सुरुचिपूर्ण तरीका शामिल है। –

0

बस।

var string = "This is a test. This is only a test. Not an Exam" 

if string.range(of:"ex") != nil { 
    print("yes") 
} 
if string.range(of:"ex", options: String.CompareOptions.caseInsensitive) != nil { 
    print("yes") 
} 
संबंधित मुद्दे