What is the best way to determine if a string contains a character from a set in Swift

前端 未结 11 1730
南旧
南旧 2020-11-30 01:03

I need to determine if a string contains any of the characters from a custom set that I have defined.

I see from this post that you can use rangeOfString to determine

11条回答
  •  臣服心动
    2020-11-30 01:54

    Updated for Swift 5.1

    Question was specifically: "if a string contains any of the characters from a custom set" and not checking for all characters in the custom set.

    Using

    func check(in string: String, forAnyIn characters: String) -> Bool {
        // create one character set
        let customSet = CharacterSet(charactersIn: characters)
        // use the rangeOfCharacter(from: CharacterSet) function
        return string.rangeOfCharacter(from: customSet) != nil 
    }
    
    check(in: "abc", forAnyIn: "A") // false
    check(in: "abc", forAnyIn: "b") // true
    
    

    But this is also very easy to check using character sets.

    
    func check(in string: String, forAnyIn characters: String) -> Bool {
        let customSet = CharacterSet(charactersIn: characters)
        let inputSet = CharacterSet(charactersIn: string)
        return !inputSet.intersection(customSet).isEmpty
    }
    
    check(in: "abc", forAnyIn: "A") // false
    check(in: "abc", forAnyIn: "b") // true
    
    

提交回复
热议问题