web-dev-qa-db-fra.com

Swift: String contient String (sans utiliser NSString)?

J'ai le même problème que dans cette question:

Comment puis-je vérifier si une chaîne contient une autre chaîne dans Swift?

Mais maintenant, quelques mois plus tard, je me demande si cela peut être fait sans utiliser NSString? I Nice et simple contient-méthode serait bien. J'ai cherché sur le web et la documentation mais je n'ai rien trouvé!

10
TalkingCode

De la même manière, juste avec la syntaxe Swift:

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

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

Pour Swift 3.0

if str.range(of: "abc") != nil{
     print("Got the string")
}
28
Steve Rosenberg

String fournit en fait une fonction "contient" via StringProtocol.
Aucune extension nécessaire:

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

 enter image description here

https://developer.Apple.com/reference/Swift/stringhttps://developer.Apple.com/documentation/Swift/stringprotocol


Si vous voulez vérifier si votre chaîne correspond à un modèle spécifique, je peux recommander l'article de NSHipster sur NSRegularExpressions: http://nshipster.com/nsregularexpression/

3
d.felber

juste pour démontrer l'utilisation des options.

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")
}
0
nyxee

J'ai écrit une extension sur String for Swift 3.0 afin que je puisse simplement appeler absoluteString.contains(string: "/kredit/") 

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

}

0
Ilker Baltaci