【问题标题】:Sorting in nsarray longest to shortest string在nsarray中排序最长到最短的字符串
【发布时间】:2015-08-26 11:41:52
【问题描述】:

我有一个 NSArray,我想按最长字符串到最短字符串排序

例如-

 NSArray *strings=[NSArray arrayWithObjects:@"as12332", @"ol", @"st", @"br", @"gj", @"wr", @"qwos", nil];

我想要这样的结果-

@"as12332",@"qwos", @"ol", @"st", @"br", @"gj", @"wr"。

按字符串长度排序。

【问题讨论】:

标签: ios sorting nsarray


【解决方案1】:

您可以使用此代码来实现您想要实现的目标:

NSArray *strings=[NSArray arrayWithObjects:@"as12332", @"ol", @"st", @"br", @"gj", @"wr", @"qwos", nil];
NSArray *sortedArray;
sortedArray = [strings sortedArrayUsingComparator:^NSComparisonResult(NSString *first, NSString *second)
{
    return [self compareLengthOf:first withLengthOf:second];
}];

sortedArray 将包含按长度排序的元素。

比较方法的实现是:

    - (NSComparisonResult)compareLengthOf:(NSString *)firstStr withLengthOf:(NSString *)secondStr
{
    if ([firstStr length] > [secondStr length])
        return NSOrderedAscending;
    else if ([firstStr length] < [secondStr length])
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}

例如,如果您希望根据字母顺序进行二次排序,您可以向比较方法添加更多逻辑。

【讨论】:

  • 哇它的作品...非常感谢您..您的快速响应...再次感谢您。
猜你喜欢
  • 2017-12-29
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 2012-01-07
  • 2023-03-10
  • 2016-08-28
  • 1970-01-01
  • 2012-09-07
相关资源
最近更新 更多