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

时间:2011-09-13 04:45:46

标签: iphone objective-c xcode nsstring nsarray

我如何检查NSArray中是否存在特定的字符串?

3 个答案:

答案 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如果您关心它实际上是同一个对象(即同一地址)。

来源: