Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Soundex.swift
- // DriverLicense
- //
- // Created by Kyle Smith on 11/21/15.
- // Copyright © 2015 Kyle Smith. All rights reserved.
- //
- import Foundation
- class Soundex {
- class func key(word: String) -> String {
- let trimmedWord = word.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
- var letterArray = [Character]()
- for character in trimmedWord.characters {
- letterArray.append(character)
- }
- //let letterArray = Array(arrayLiteral: trimmedWord.uppercaseString)
- if (letterArray.count < 1) {
- return ""
- }
- var soundex:[Character] = Array()
- var lastCode: Character?
- for (index, letter) in (letterArray.enumerate()) {
- if (soundex.count >= 3) { break }
- var code: Character
- switch letter {
- case "R":
- code = "6"
- case "M", "N":
- code = "5"
- case "L":
- code = "4"
- case "T", "D":
- code = "3"
- case "C", "S", "K", "G", "J", "Q", "X", "Z":
- code = "2"
- case "B", "P", "F", "V":
- code = "1"
- default:
- code = "0"
- }
- if (index == 0) {
- lastCode = code
- continue
- }
- if (code != "0" && code != lastCode) {
- soundex.append(code)
- lastCode = code
- }
- }
- while (soundex.count < 3) {
- soundex.append("0")
- }
- soundex.insert(letterArray.first!, atIndex: 0)
- return soundex.reduce("") { $0 + String($1) }
- }
- class func word(word: String, soundsLike: String) -> Bool {
- return self.key(word) == self.key(soundsLike)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement