我如何检查NSArray中是否存在特定的字符串?
答案 0 :(得分:45)
你可以这样做,
NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
if ( [yourArray containsObject: yourStringToFind] ) {
// do found
} else {
// do not found
}
答案 1 :(得分: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]);
答案 2 :(得分:1)
取决于您的需求。 indexOfObject
如果您关心平等(最有可能),或indexOfObjectIdenticalTo
如果您关心它实际上是同一个对象(即同一地址)。
来源: