//*******************Code*****************
.h
NSMutableArray *arrayForLetter;
//———————————-
.m
NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:@”Z”];
[myArray addObject:@”y”];
[myArray addObject:@”X”];
[myArray addObject:@”Z”];
[myArray addObject:@”&A”];
[myArray addObject:@”C”];
[myArray addObject:@”#A”];
[myArray addObject:@”DA”];
[myArray addObject:@”^A”];
[myArray addObject:@”!E”];
NSLog(@”My Array : %@”,myArray);
NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSLog(@”Sorted Array : %@”,sortedArray);
NSMutableDictionary *arraysByLetter = [NSMutableDictionary dictionary];
for (NSString *value in sortedArray)
{
NSString *firstLetter = [value substringWithRange:NSMakeRange(0, 1)];
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”] invertedSet];
if ([firstLetter rangeOfCharacterFromSet:set].location != NSNotFound)
{
arrayForLetter = [arraysByLetter objectForKey:@”#”];
if (arrayForLetter == nil)
{
arrayForLetter = [NSMutableArray array];
[arraysByLetter setObject:arrayForLetter forKey:@”#”];
}
[arrayForLetter addObject:value];
}
else
{
[firstLetter uppercaseString];
arrayForLetter = [arraysByLetter objectForKey:firstLetter];
if (arrayForLetter == nil)
{
arrayForLetter = [NSMutableArray array];
[arraysByLetter setObject:arrayForLetter forKey:firstLetter];
}
[arrayForLetter addObject:value];
}
}
NSArray *array = [[arraysByLetter allKeys] sortedArrayUsingSelector:@selector(compare:)];
NSLog(@”Dictionary of Array : %@”,arraysByLetter);
NSLog(@”Keys of array : %@”,array);
//*************Out Put ********************
2012-06-06 13:15:42.196 DemoAppliction[4215:207] My Array : (
Z,
y,
X,
Z,
“&A”,
C,
“#A”,
DA,
“^A”,
“!E”
)
2012-06-06 13:15:44.250 DemoAppliction[4215:207] Sorted Array : (
“!E”,
“&A”,
“#A”,
“^A”,
C,
DA,
X,
y,
Z,
Z
)
2012-06-06 13:15:45.442 DemoAppliction[4215:207] Dictionary of Array : {
“#” = (
“!E”,
“&A”,
“#A”,
“^A”
);
C = (
C
);
D = (
DA
);
X = (
X
);
Z = (
Z,
Z
);
y = (
y
);
}
2012-06-06 13:15:45.443 DemoAppliction[4215:207] Keys of array : (
“#”,
C,
D,
X,
Z,
y
)