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

后端 未结 27 3718
天命终不由人
天命终不由人 2020-11-22 12:32

In Objective-C the code to check for a substring in an NSString is:

NSString *string = @\"hello Swift\";
NSRange textRange =[strin         


        
27条回答
  •  庸人自扰
    2020-11-22 13:23

    As of Xcode 7.1 and Swift 2.1 containsString() is working fine for me.

    let string = "hello swift"
    if string.containsString("swift") {
        print("found swift")
    }
    

    Swift 4:

    let string = "hello swift"
    if string.contains("swift") {
        print("found swift")
    }
    

    And a case insensitive Swift 4 example:

    let string = "Hello Swift"
    if string.lowercased().contains("swift") {
        print("found swift")
    }
    

    Or using a case insensitive String extension:

    extension String {
        func containsIgnoreCase(_ string: String) -> Bool {
            return self.lowercased().contains(string.lowercased())
        }
    }
    
    let string = "Hello Swift"
    let stringToFind = "SWIFT"
    if string.containsIgnoreCase(stringToFind) {
        print("found: \(stringToFind)")  // found: SWIFT
    }
    print("string: \(string)")
    print("stringToFind: \(stringToFind)")
    
    // console output:
    found: SWIFT
    string: Hello Swift
    stringToFind: SWIFT
    

提交回复
热议问题