Set<String>をCharcterSetに置き換える

// before
    var japaneseChars : Set<String> {
        return Set(japaneseNumericalChars.keys)
    }

// after
    var japaneseChars : CharacterSet {
        return CharacterSet(charactersIn: japaneseNumericalChars.keys.joined())
    }

characterSetはSetとほぼ同じように使えるが、containsメソッドでStringを引数に使えないので、以下のようにrangeOfCharacter(from searchSet: CharacterSet) を使う

// before 
    func checkType(_ str : String) -> Int {
        
        switch str {
        case str where japaneseChars.contains(str):
            return 0
        case str where japaneseExpChars.contains(str):
            return 1
        default:
            return 2
        }
    }

// after 
    func checkType(_ str : String) -> Int {
        
        switch str {
        case str where str.rangeOfCharacter(from: japaneseChars) != nil:
            return 0
        case str where str.rangeOfCharacter(from: japaneseExpChars) != nil:
            return 1
        default:
            return 2
        }
    }


参考 :
rangeOfCharacter(from:) - NSString | Apple Developer Documentation
stackoverflow.com