Swift: String содержит строку (без использования NSString)?

У меня такая же проблема, как в этом вопросе:

Как проверить, содержит ли строка строку в Swift?

Но теперь несколько месяцев спустя я задаюсь вопросом, можно ли это сделать без использования NSString? Я славный и простой содержит-метод будет хорошо. Я искал в Интернете и документации, но ничего не нашел!

Ответ 1

То же самое, просто с синтаксисом Swift:

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

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

Для Swift 3.0

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

Ответ 2

String фактически предоставляет функцию "содержит" через StringProtocol.
Никакое расширение вообще не требуется:

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

введите описание изображения здесь

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


Если вы хотите проверить, соответствует ли ваша строка определенному шаблону, я могу рекомендовать статью NSHipster о NSRegularExpressions: http://nshipster.com/nsregularexpression/ p >

Ответ 3

Я написал расширение для String для SWIFT 3.0, чтобы просто позвонить absoluteString.contains(string: "/kredit/")

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

}

Ответ 4

чтобы продемонстрировать использование опций.

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