Ios 根据数组字符转换数组格式
我有这种格式的数组Ios 根据数组字符转换数组格式,ios,dictionary,formatting,nsarray,Ios,Dictionary,Formatting,Nsarray,我有这种格式的数组 rows = [[NSArray alloc] initWithObjects:@"adam", @"alfred", @"ain", @"abdul", @"anastazja", @"angelica", @"dennis" , @"deamon", @"destiny", @"dragon", @"dry", @"debug" @"drums", @"Fredric", @"France",
rows = [[NSArray alloc] initWithObjects:@"adam", @"alfred", @"ain", @"abdul", @"anastazja", @"angelica",
@"dennis" , @"deamon", @"destiny", @"dragon", @"dry", @"debug" @"drums",
@"Fredric", @"France", @"friends", @"family", @"fatish", @"funeral",
@"Mark", @"Madeline",
@"Nemesis", @"nemo", @"name",
@"Obama", @"Oprah", @"Omen", @"OMG OMG OMG", @"O-Zone", @"Ontario",
@"Zeus", @"Zebra", @"zed", nil];
但我需要以下格式
rows = @[@[@"adam", @"alfred", @"ain", @"abdul", @"anastazja", @"angelica"],
@[@"dennis" , @"deamon", @"destiny", @"dragon", @"dry", @"debug", @"drums"],
@[@"Fredric", @"France", @"friends", @"family", @"fatish", @"funeral"],
@[@"Mark", @"Madeline"],
@[@"Nemesis", @"nemo", @"name"],
@[@"Obama", @"Oprah", @"Omen", @"OMG OMG OMG", @"O-Zone", @"Ontario"],
@[@"Zeus", @"Zebra", @"zed"]];
表示将同一起始字符输入到不同的词典中是最简单的方法
NSArray *rows = ...;
NSMutableDictionary *map = [NSMutableDictionary dictionary];
for (NSString *value in rows) {
NSString *firstLetter = [value substringToIndex:1];
if (!map[firstLetter]) {
map[firstLetter] = @[];
}
NSMutableArray *values = [map[firstLetter] mutableCopy];
[values addObject:value];
map[firstLetter] = values;
}
NSArray *finalRows = [map allValues];
请注意,finalRows
未排序。最简单的方法
NSArray *rows = ...;
NSMutableDictionary *map = [NSMutableDictionary dictionary];
for (NSString *value in rows) {
NSString *firstLetter = [value substringToIndex:1];
if (!map[firstLetter]) {
map[firstLetter] = @[];
}
NSMutableArray *values = [map[firstLetter] mutableCopy];
[values addObject:value];
map[firstLetter] = values;
}
NSArray *finalRows = [map allValues];
请注意,
finalRows
未排序。如果要按数组的第一个字母排序,可以尝试以下操作:
NSMutableArray *outputArray = [NSMutableArray new];
NSString *lastFirstLetter = nil;
for(NSString *value in rows) {
NSString *firstLetter = [[value substringToIndex:1] lowerString];
if(![lastFirstLetter isEqualToString:firstLetter]) {
lastFirstLetter = firstLetter;
[outputArray addObject:[NSMutableArray new]];
}
[[outputArray lastObject] addObject:value];
}
其思想是迭代输入数组,如果单词的第一个字母与前面的不同,则创建一个新数组。如果要按数组的第一个字母对数组进行排序,可以尝试以下方法:
NSMutableArray *outputArray = [NSMutableArray new];
NSString *lastFirstLetter = nil;
for(NSString *value in rows) {
NSString *firstLetter = [[value substringToIndex:1] lowerString];
if(![lastFirstLetter isEqualToString:firstLetter]) {
lastFirstLetter = firstLetter;
[outputArray addObject:[NSMutableArray new]];
}
[[outputArray lastObject] addObject:value];
}
其思想是迭代输入数组,如果单词的第一个字母与前一个不同,则创建一个新数组。您的示例是数组,而不是字典。你试过(展示)什么代码,它做错了什么?你的示例是数组,而不是字典。你试过(展示)什么代码?它做错了什么?这工作很好,谢谢,但这是代码中的一个小问题。你能按字母顺序把它分类吗。(“德夫拉吉·辛格”、“德夫拉吉·辛格”)、(“马克·Json”)、(“德夫拉吉·古贾”)、(“亚当·哈里斯”)、(“尼尼赫茨印度”、“尼尼赫茨印度”)、(“测试用户”、“测试测试”)、(“Ghh HHS”),(“Yatin TFT”))这工作很好,谢谢,但它们在这段代码中是一个小问题。你能按字母顺序把它分类吗。(“德夫拉吉·辛格”、“德夫拉吉·辛格”)、(“马克·Json”)、(“德夫拉吉·古贾”)、(“亚当·哈里斯”)、(“尼尼赫茨印度”、“尼尼赫茨印度”)、(“测试用户”、“测试测试”)、(“Ghh HHS”),(“Yatin TFT”))这工作很好,谢谢,但它们在这段代码中是一个小问题。你能按字母顺序把它分类吗。(“德夫拉吉·辛格”、“德夫拉吉·辛格”)、(“马克·Json”)、(“德夫拉吉·古贾”)、(“亚当·哈里斯”)、(“尼尼赫茨印度”、“尼尼赫茨印度”)、(“测试用户”、“测试测试”)、(“Ghh HHS”),(“Yatin TFT”))您可以使用以下命令对数组排序:[outputArray sortUsingSelector:@selector(compare:)];这是很好的工作,谢谢,但他们在这段代码中是一个小问题。你能按字母顺序把它分类吗。(“德夫拉吉·辛格”、“德夫拉吉·辛格”)、(“马克·Json”)、(“德夫拉吉·古贾”)、(“亚当·哈里斯”)、(“尼尼赫茨印度”、“尼尼赫茨印度”)、(“测试用户”、“测试测试”)、(“Ghh HHS”),(“Yatin TFT”))您可以使用以下命令对数组排序:[outputArray sortUsingSelector:@selector(compare:)];