ios 数组按字母大小顺序排序

今天做一个国家码的页面,要求根据字母升序的顺序排序。鼓捣了好久,现在来记录一下,避免再次入坑。

1.一个数组NSArray,数组中存的是“A”,“D”、“B”这样的NSString类型的数据,顺序是乱的。要求按升序排列。

2.比较两个字符串的大小,用- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask方法,如:

NSComparisonResult  result = [obj1 compare:obj2 options:NSLiteralSearch];

用冒泡排序。如果obj1>obj2,将两个位置互换。互换用这个方法:[self.dataArray  exchangeObjectAtIndex:i   withObjectAtIndex:j];

3.OC中有专门的排序方法,只要传入排序规则,自动生成排好的序列:

    //按升序方式排序 self.keys是需要排序的无序数组,result 是排好的有序数组。

    NSArray  *result = [self.keys  sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1 , id  _Nonnull obj2)

    {

//          NSLog(@"%@~%@",obj1,obj2); //A~B,C~D

          return [obj1 compare:obj2 options:NSLiteralSearch]; //升序

      }];

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容