Objective-C字符串函数:包含字符串

时间:2012-04-10 23:10:45

标签: objective-c cocoa nsstring substring

如何检查NSString是否包含另一个子字符串,此时它将返回一个布尔值。

这就是我的想法:

If myString.contains("string") then
{
   //Stuff Happens
}

但是,从我所做的研究来看,似乎Obj-C对此没有任何作用。这个Wikipedia article提供了许多字符串函数,它们的差异以及所有不同语言的函数,但我看不到任何包含函数的Obj-C支持。

有没有人知道一个简单易用的功能,如上面的那个(类似于C#和VB.NET功能)?

“查找”功能会起作用吗?如果是这样,怎么样?

如果Obj-C不支持,我可以使用吗?

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:12)

if ([myString rangeOfString:@"string"].location != NSNotFound)
{
    // Stuff happens
}

答案 1 :(得分:4)

NSString *someString = @"Time for an egg hunt";

if ( [someString rangeOfString:@"egg" options:NSCaseInsensitiveSearch].location != NSNotFound ) {
  NSLog( @"Found it!" );
}

答案 2 :(得分:4)

如果你想成为case insensitive

NSRange range = [string rangeOfString:@"string" options:NSCaseInsensitiveSearch];
if (range.location != NSNotFound)
{
    return range.location;
}
else
{
    return nil;
}

Documentation

答案 3 :(得分:2)

创建 NSString类别,并将其放入...

代码:

- (BOOL)contains:(NSString *)str
{
    NSRange aRange = [self rangeOfString:str];

    return (aRange.location!=NSNotFound);
}

用法:

NSString* testStr = @"This is my string";

if ([testStr contains:@"is"])
{
     // do something
}

答案 4 :(得分:1)

if([string rangeOfString:substring].length > 0)
    ...