我有应用程序存储来自服务器的字符串值。然后我使用SearchView写入可以在List中的字符串。它必须不区分大小写。到目前为止,我有这个。但这不是我想要的魔力。
if (myListTags as NSArray).containsObject(searchBar.text!) {
print("FOUND")
getCategoryPick()
}
我试图加入caseInsensitiveCompare
,但我失败了。对我有什么帮助?
如果该代码能够理解捷克语中的字母相似性,那将是完美的。(č= c,ž= z,í= i ......)
答案 0 :(得分:7)
“č”是Unicode字符“LATIN SMALL LETTER C WITH CARON”。 它可以分解为“c”+“”,后者(“CARON”)是所谓的“变音符号”。
在比较字符串时忽略变音符号(这样
“č”=“c”),使用.DiacriticInsensitiveSearch
选项:
let list = ["č", "ž"]
let search = "C"
if (list.contains {
$0.compare(search, options: [.DiacriticInsensitiveSearch, .CaseInsensitiveSearch]) == .OrderedSame
}) {
print("Found")
}
或者,如果要查找匹配的子字符串:
if (list.contains {
$0.rangeOfString(search, options: [.DiacriticInsensitiveSearch, .CaseInsensitiveSearch]) != nil
}) {
print("Found")
}
答案 1 :(得分:3)
您可以使用localizedCaseInsensitiveCompare():
{{1}}