extension String {
func compare(to string : String, caseSensitive : Bool) -> Double // returns 0-1 match (ie. 70% match would return 0.7)
{
let string = caseSensitive ? string : string.lowercased();
var matches = 0.0;
for (i, char) in (caseSensitive ? self : self.lowercased()).enumerated() {
guard i < string.count else {break};
matches += (char == string[string.characters.index(string.startIndex, offsetBy: i)]) ? 1 : 0;
}
return matches / Double(self.count > string.count ? self.count : string.count);
}
}