我发现,当使用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/

10-11 13:44