當(dāng)一段數(shù)組里面的字符串,需要進(jìn)行排序的時(shí)候,:原文鏈接
英文通過字母排序:
中文通過拼音排序:
這里有一個(gè)算法,直接使用就可以進(jìn)行排序
-(void)testSort
{ NSArray *stringsArray = [NSArray arrayWithObjects:@"string 1", @"你好",@"你在", @"String 11", @"上海", nil];
? ?static NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch | NSNumericSearch | NSWidthInsensitiveSearch | NSForcedOrderingSearch;
????NSLocale *currentLocale = [NSLocale currentLocale];
?????NSComparator finderSortBlock = ^(id string1, id string2) {
??????? NSRange string1Range = NSMakeRange(0, [string1 length]);
??? return [string1 compare:string2 options:comparisonOptions range:string1Range locale:currentLocale];
??? };
??? NSArray *finderSortArray = [stringsArray sortedArrayUsingComparator:finderSortBlock];
??? NSLog(@"finderSortArray: %@", finderSortArray);
}
輸出結(jié)果:
<__NSArrayI 0x109622d90>(
你好,
你在,
上海,
string 1,
String 11
)
---------------------