如何检查字符串( NSString
)是否包含另外一个较小的字符串? objective-c
我但愿有这样的东西: app
NSString *string = @"hello bla bla"; NSLog(@"%d",[string containsSubstring:@"hello"]);
可是我能找到的最接近的是: spa
if ([string rangeOfString:@"hello"] == 0) { NSLog(@"sub string doesnt exist"); } else { NSLog(@"exists"); }
不管如何,这是查找一个字符串是否包含另外一个字符串的最佳方法吗? code
NSString *myString = @"hello bla bla"; NSRange rangeValue = [myString rangeOfString:@"hello" options:NSCaseInsensitiveSearch]; if (rangeValue.length > 0) { NSLog(@"string contains hello"); } else { NSLog(@"string does not contain hello!"); }
//您也能够使用如下方法: 字符串
if (rangeValue.location == NSNotFound) { NSLog(@"string does not contain hello"); } else { NSLog(@"string contains hello!"); }
Oneliner(少许代码。DRY,由于您只有一个NSLog
): get
NSString *string = @"hello bla bla"; NSLog(@"String %@", ([string rangeOfString:@"bla"].location == NSNotFound) ? @"not found" : @"cotains bla");
P i解决方案的改进版本(NSString上的类别)不只能够告诉您是否在另外一个字符串中找到了一个字符串,并且还能够经过引用获取一个范围: string
@interface NSString (Contains) -(BOOL)containsString: (NSString*)substring atRange:(NSRange*)range; -(BOOL)containsString:(NSString *)substring; @end @implementation NSString (Contains) -(BOOL)containsString:(NSString *)substring atRange:(NSRange *)range{ NSRange r = [self rangeOfString : substring]; BOOL found = ( r.location != NSNotFound ); if (range != NULL) *range = r; return found; } -(BOOL)containsString:(NSString *)substring { return [self containsString:substring atRange:NULL]; } @end
像这样使用它: it
NSString *string = @"Hello, World!"; //If you only want to ensure a string contains a certain substring if ([string containsString:@"ello" atRange:NULL]) { NSLog(@"YES"); } // Or simply if ([string containsString:@"ello"]) { NSLog(@"YES"); } //If you also want to know substring's range NSRange range; if ([string containsString:@"ello" atRange:&range]) { NSLog(@"%@", NSStringFromRange(range)); }
这是一个复制粘贴功能代码段: io
-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText { return [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location != NSNotFound; }
因为这彷佛是Google的高排名结果,所以我想添加如下内容: object
iOS 8和OS X 10.10将containsString:
方法添加到NSString
。 这些系统的Dave DeLong示例的更新版本:
NSString *string = @"hello bla bla"; if ([string containsString:@"bla"]) { NSLog(@"string contains bla!"); } else { NSLog(@"string does not contain bla"); }