gpt4 book ai didi

ios - 通过忽略空格对 NSString 的 NSArray 进行排序

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

我有一个

NSArray *foo = @[@"Chicago Hts, IL", @"Chicago Heights, IL", @"Chicago, IL"];

我想得到一个像这样的排序数组:

@[@"Chicago, IL", @"Chicago Heights, IL", @"Chicago Hts, IL"];

我用过

[foo sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:),

结果

@[@"Chicago Heights, IL", @"Chicago Hts, IL", @"Chicago, IL"];

这个数组有大约 100k+ 条目,因此根据空白空间分割字符串并对其进行排序和“取消分割”会导致性能不佳。

我意识到 Finder 对文件进行排序的方式与“localizedCaseInsensitiveCompare”相同,所以我想我运气不好。

我倾向于根据第一个字符“a”拆分数组,根据空白连接字符串,对其进行排序,然后在 tableView 中将其显示给用户,并且如果用户滚动经过第一个集合结果,获取“b”的下一组对象,通过忽略空白来连接单词,排序,“取消连接单词”并显示。

最佳答案

提供您自己的比较器:

NSArray *sorted = [foo sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
// Remove all spaces
NSString *s1 = [str1 stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString *s2 = [str2 stringByReplacingOccurrencesOfString:@" " withString:@""];

return [s1 localizedCaseInsensitiveCompare:s2];
}];

关于ios - 通过忽略空格对 NSString 的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651656/

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