#import
<Foundation/NSArray.h>
#import
<Foundation/NSString.h>
#import
<Foundation/NSAutoreleasePool.h>
#import
<stdio.h>
@interface
NSString (sortingExtension)
@end
@implementation NSString (sortingExtension)
//降序排列
-
(NSComparisonResult) DesIn: (NSString *) aString
{return -1 * [self caseInsensitiveCompare:aString];}
-
(NSComparisonResult) Des: (NSString *) aString
{return -1 * [self compare:aString];}
//升序排列
-
(NSComparisonResult) AscIn: (NSString *) aString
{return [self caseInsensitiveCompare:aString];}
-
(NSComparisonResult) Asc: (NSString *) aString
{return [self compare:aString];}
//长度升序排列
-
(NSComparisonResult) lenAsc: (NSString *) aString
{
if (self.length == aString.length)
return NSOrderedSame;
if (self.length > aString.length)
return NSOrderedDescending;
return NSOrderedAscending;
}
//长度降序排列
-
(NSComparisonResult) lenDes: (NSString *) aString
{return -1 * [self lenAsc:aString];}
@end
void
print( NSArray *array ) {
//for(NSString *str in array){NSLog(@"%@",str);}
int i;
for(i=0;i<[array
count];i++){
printf("%s ",[[[array
objectAtIndex:i] description] cString]);}
printf("\n");
}
int main(
int argc, const char *argv[] ) {
NSAutoreleasePool *pool
= [[NSAutoreleasePool alloc] init];
NSArray *arr =
[[NSArray alloc] initWithObjects:
@"me", @"Myself", @"I", nil];
NSMutableArray *mutable
= [[NSMutableArray alloc] init];
printf( "--不变的
arr
数组:" );
print( arr );
//
往mutable中加入元素
[mutable addObject: @"One"];
[mutable addObject: @"Two"];
[mutable addObjectsFromArray: arr];
[mutable addObject: @"three"];
printf( "--最初的可变的mutable数组:" );
print( mutable );
// sort then print
printf( "--长度升序排序后的mutable数组:" );
[mutable sortUsingSelector: @selector(lenAsc: )];
print( mutable );
printf( "--长度升序降序后的mutable数组:" );
[mutable sortUsingSelector: @selector(lenDes: )];
print( mutable );
printf( "--不区分大小写升序后的mutable数组:" );
[mutable sortUsingSelector: @selector(AscIn: )];
print( mutable );
printf( "--区分大小写升序后的mutable数组:" );
[mutable sortUsingSelector: @selector(Asc: )];
print( mutable );
printf( "--不区分大小写降序后的mutable数组:" );
[mutable sortUsingSelector: @selector(DesIn: )];
print( mutable );
printf( "--区分大小写降序后的mutable数组:" );
[mutable sortUsingSelector: @selector(Des: )];
print( mutable );
// free memory
[arr release];
[mutable release];
[pool release];
return 0;
}
输出:
--不变的 arr 数组:me
Myself I
--最初的可变的mutable数组:One Two
me Myself I
three
--长度升序排序后的mutable数组:I me
One Two three
Myself
--长度升序降序后的mutable数组:Myself
three One Two
me I
--不区分大小写升序后的mutable数组:I me
Myself One
three Two
--区分大小写升序后的mutable数组:I Myself
One Two me
three
--不区分大小写降序后的mutable数组:Two three
One Myself me
I
--区分大小写降序后的mutable数组:three me
Two One
Myself I
代码可直接放如main里运行 谢谢网友分享
down src :http://download.csdn.net/download/kansome/4650996
加载中,请稍候......