在nsarray中从最长到最短的字符串排序
Sorting in nsarray longest to shortest string
我有一个 NSArray,我想按最长字符串到最短字符串排序
例如-
NSArray *strings=[NSArray arrayWithObjects:@"as12332", @"ol", @"st", @"br", @"gj", @"wr", @"qwos", nil];
我想要这样的结果-
@"as12332",@"qwos", @"ol", @"st", @"br", @"gj", @"wr".
按字符串长度排序。
您可以使用此代码来实现您想要实现的目标:
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;
}
您可以向比较方法添加更多逻辑,例如,如果您想根据字母顺序进行二次排序。
我有一个 NSArray,我想按最长字符串到最短字符串排序
例如-
NSArray *strings=[NSArray arrayWithObjects:@"as12332", @"ol", @"st", @"br", @"gj", @"wr", @"qwos", nil];
我想要这样的结果-
@"as12332",@"qwos", @"ol", @"st", @"br", @"gj", @"wr".
按字符串长度排序。
您可以使用此代码来实现您想要实现的目标:
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;
}
您可以向比较方法添加更多逻辑,例如,如果您想根据字母顺序进行二次排序。