问题

如何检查字符串( NSString )是否包含另一个较小的字符串?

我希望有类似的东西:

NSString *string = @"hello bla bla";
NSLog(@"%d",[string containsSubstring:@"hello"]);

但我能找到的最近的是:

if ([string rangeOfString:@"hello"] == 0) {
    NSLog(@"sub string doesnt exist");
} 
else {
    NSLog(@"exists");
}

反正,是找到一个字符串是否包含另一个字符串的最好方法.



解决方法
NSString *string = @"hello bla bla";
if ([string rangeOfString:@"bla"].location == NSNotFound) {
  NSLog(@"string does not contain bla");
} else {
  NSLog(@"string contains bla!");
}

关键是注意 rangeOfString:返回一个 NSRange 结构,文档说它返回struct {NSNotFound,0} 如果"haystack"不包含"needle".


如果您使用的是iOS 8或OS X Yosemite,您现在可以执行以下操作:(*注意:如果在iOS7设备上调用此代码,则会导致应用程序崩溃. p>

NSString *string = @"hello bla blah";
if ([string containsString:@"bla"]) {
  NSLog(@"string contains bla!");
} else {
  NSLog(@"string does not contain bla");
}




相关问题推荐