如何检查一个字符串 (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
结构,并且 the documentation says如果“haystack”不包含“needle”,则返回结构 {NSNotFound, 0}
。
如果您使用的是 iOS 8 或 OS X Yosemite,您现在可以执行以下操作:*(注意:如果在 iOS7 设备上调用此代码,您的应用会崩溃)。
NSString *string = @"hello bla blah";
if ([string containsString:@"bla"]) {
NSLog(@"string contains bla!");
} else {
NSLog(@"string does not contain bla");
}
(这也是它在 Swift 中的工作方式)
https://stackoverflow.com/questions/2753956/