根据首字母排序NSArray

我的NSArray大概这样:

contactNamesArray = [[NSMutableArray alloc] initWithObjects:@"John Galt", @"Michael Wales", @"James Joyce", @"Shakespeare", nil];

我想实现一个NSArray,全部都有相同的值,看上去:

newContactNamesArray = [[NSMutableArray alloc] initWithObjects:@"john galt", @"michael wales", @"james joyce", @"shakespeare", nil];

最后是想在第二个array中进行搜索,并且用一个普通字母代替每个首字母。

ChatGPT尝试为您解答,仅供参考
为了创建一个包含所有元素都相同的 NSArray,你可以这样做:

NSString *sameValue = @"john galt";
int count = 4;

NSMutableArray *newContactNamesArray = [[NSMutableArray alloc] initWithCapacity:count];
for (int i = 0; i < count; i++) {
    [newContactNamesArray addObject:sameValue];
}

这样就可以创建一个包含4个元素,每个元素都是 @"john galt" 的 NSArray。


然后,如果你想在 newContactNamesArray 中搜索元素并用普通字母代替每个首字母,你可以使用 NSArray 的 indexOfObject 方法来获取每个元素的索引,并使用 NSMutableArray 的 replaceObjectAtIndex:withObject: 方法来替换元素。


例如,你可以这样做:

for (int i = 0; i < count; i++) {
    NSString *name = contactNamesArray[i];
    NSUInteger index = [newContactNamesArray indexOfObject:name];
    if (index != NSNotFound) {
        // 如果找到了,就用普通字母替换首字母
        NSString *normalizedName = [name stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:[[name substringToIndex:1] lowercaseString]];
        [newContactNamesArray replaceObjectAtIndex:index withObject:normalizedName];
    }
}

这样就可以在 newContactNamesArray 中搜索 contactNamesArray 中的元素,并用普通字母代替首字母。