gpt4 book ai didi

iphone - 正确排序 NSString 数组,包括以破折号或特殊符号开头的单词(对于字典)

转载 作者:行者123 更新时间:2023-11-29 11:03:52 24 4
gpt4 key购买 nike

我是 iOS 新手,正在尝试构建一个字典应用程序。我有一个单词和定义的 NSMutableDictionary,我将其单词(键)保存在 NSStrings 的一个单独的 NSArray 中,称为 sortedWords.

sortedWords = [[NSMutableArray alloc] initWithArray:[[entries allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]];

如您所见,我正在对每个键进行不区分大小写的比较,就像我在字典中应该做的那样。然而,最近的一次数据库更新在我的字典中包含了新词,这些新词仅仅是以破折号开头的后缀。这些条目现在位于所有以字母 A 开头的条目之前,并按字母顺序列出。

我想要实现的是保持所有条目甚至后缀的字母顺序,但使后缀成为每个字母的第一个条目。例如,对于 E,条目的顺序为:

-er
-est
each
eager
eagle

我该怎么做?

最佳答案

您可以使用自己的比较器请求排序。您的比较器基本上删除了 - 前缀,然后比较两个字符串。像这样:

[sortedWords sortUsingComparator:^(NSString *obj1, NSString *obj2) {

NSString *temp1 = obj1;
NSString *temp2 = obj2;
if ([obj1 hasPrefix:@"-"])
temp1 = [obj1 substringFromIndex:1];
if ([obj2 hasPrefix:@"-"])
temp2 = [obj2 substringFromIndex:1];

return [temp1 caseInsensitiveCompare:temp2];
}];

我没有测试这段代码,但它至少应该作为一个指南!

关于iphone - 正确排序 NSString 数组,包括以破折号或特殊符号开头的单词(对于字典),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com