如何检查NSString是否为特定的字符串值?


67

嗨,我很伤心,如果您可以查看NSString是否等于特定值,例如说一个人的名字?

我在想

if (mystring == @"Johns"){
    //do some stuff in here
}

Answers:


143
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}

3

这是您在某些情况下可能要使用的另一种方法:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];

if ([validNames indexOfObject:myString].location != NSNotFound) 
{
    // The myString is one of the names in the valid names array
}

或者,如果数组中包含大量名称,则可以使用NSSet,因为查找对象比数组中((O(Log N)vs O(N))更快

NSSet * validNamesSet = [NSSet setWithArray:validNames];

if ([validNamesSet containsObject:myString]) 
{
    // This is faster than indexOfObject for large sets
}

这些方法的工作,因为NSSetNSArray使用isEqual:,它将调用isEqualToString:NSString实例。


location方法的for循环相比,您何时想使用该isEqualToString方法?
2014年

1
@PavanindexOfObject比for循环(更少的代码行)更易于使用。除此之外,没有什么区别。NSSet方法比循环遍历大型集合的数组要快,但是在大多数情况下,它并不重要。
罗伯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.