我使用UILocalizedIndexedCollation
来获取本地sectionIndexTitles
的数组。
现在我想检查一个字符串,如果它以这些sectionIndexTitles中的某个元素开头。
假设我的语言是韩语,sectionIndexTitles
就是这样:
"ㄱ,ㄴ,ㄷ,ㄹ,ㅁ,ㅂ,ㅅ,ㅇ,ㅈ,ㅊ,ㅋ,ㅌ,ㅍ,ㅎ,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,#"
如何检查String"나비"以"ㄴ"?
开头问题在于第一个"字符"是"나"和"ㄴ"永远不会孤立于一个角色。因此,似乎sectionIndexTitles
实际上应该包含第一个字符组合,例如나
。
"ㄴ".characters.first // "ㄴ"
"나비".characters.first // "나"
"나비".hasPrefix("ㄴ") // false
"나비".localizedStandardRange(of: "ㄴ") // nil
"나비".range(of: "ㄴ") // nil
如何创建字母部分标题,例如" A"," B"," C",...并放入本地化的字符串元素喜欢"나비"?
例如韩语有第一个"字符"的各种组合,所以
来自sectionIndexTitles
的{{1}}(例如"ㄴ")无法用于将元素排序到右侧部分
答案 0 :(得分:1)
缩放字符,我看到"나"
和"ㄴ"
以两个不同的视觉元素开始。
第一种情况下的“L”视觉元素具有弯曲的水平部分
而在第二个(你想要匹配的那封信)没有。
所以我认为,如果您想要按层次结构组织数据,那么以"나"
开头的字符串应该只包含在"#"
部分中(据我了解UILocalizedIndexedCollation
this tutorial)。
基本上,如果"나비".hasPrefix("ㄴ")
是false
,那么它是false
...所以应该处理它。