我如何检查NSArray中是否存在特定的NSString?

Rav*_*avi 21 iphone xcode objective-c nsstring nsarray

我如何检查特定的NSString是否是NSArray中的presnet?

Jan*_*mal 46

你可以这样做,

NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
if ( [yourArray containsObject: yourStringToFind] ) {
    // do found
} else {
    // do not found
}
Run Code Online (Sandbox Code Playgroud)


bry*_*mac 6

Iterating或containsObject是n种查找方式.

如果您想要恒定时间查找,您还可以维护一个哈希表,如NSSet或NSHashTable,但这会增加空间但节省时间.

NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil];
NSSet *set = [NSSet setWithArray:strings];

NSString* stringToFind = @"two";
NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]);
NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]);   
Run Code Online (Sandbox Code Playgroud)