我发现,当使用uppercased()时,“_”会转换为“ss”。但我想比较两个字符串是否相等而不区分大小写。
因此,当比较“gru_”和“gru_”时,应该与比较“gru”和“gru”时相同。
德语中没有大写“_”!因为我不知道在相应的语言中还有哪些字符不可用,所以我无法筛选所有没有1:1大写对手的字符。
我能做什么?
最佳答案
使用caseInsensitiveCompare()
而不是转换字符串
大写或小写:
let s1 = "gruß"
let s2 = "GRUß"
let eq = s1.caseInsensitiveCompare(s2) == .orderedSame
print(eq) // true
这将以不区分大小写的方式根据
Unicode标准。
还有
localizedCaseInsensitiveCompare()
根据当前区域设置进行比较,以及
s1.compare(s2, options: .caseInsensitive, locale: ...)
根据任意给定的
区域设置。
关于swift - 德语字符ß在SS中大写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41059974/